#run.taxon <- "carnivores" #"ungulates"
this.rank <- "species" #"genus" "species"
interval.type <- "nalma" #"nalma" "bins
bmBreaks_herb <- c(-Inf, 0.69897, 1.39794, 2.176091, 2.69897, Inf) #Janis 2000 max(measure.mat$bodyMass, na.rm=TRUE)
bmBreaks_pred <- c(-Inf, 0, 0.845098, 1.322219, 2, Inf)
#do.pred.diet <- TRUE
#diet.type <- c("hypercarnivore") #, "mesocarnivore", "hypocarnivore")
save.pathname <- "~/Dropbox/Code/R/Results/"
#if you want to load a repIntOccs or repIntTaxa from file put the pathname as this object. otherwise keep as NUll to make a new repIntOccs and repIntTaxa using the settings below
repIntLoad <-
####Full runs
#"/Users/emdoughty/Dropbox/Code/R/Results/repIntMaster__this.rank=species_timebin=2Mabins_start=64Ma_end=0Ma_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Sun Mar 6 19:30:39 2022 ------##.Rdata"
#"/Users/emdoughty/Dropbox/Code/R/Results/repIntMaster__this.rank=species_timebin=2Mabins_start=64Ma_end=1Ma_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Fri Mar 4 21:58:08 2022 ------##.Rdata"
"/Users/emdoughty/Dropbox/Code/R/Results/repIntMaster__this.rank=species_timebin=nalma_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Thu Mar 3 18:05:02 2022 ------##.Rdata"
##### Predator diet repInt
#"/Users/emdoughty/Dropbox/Code/R/Results/repIntMaster__this.rank=species_timebin=2Mabins_start=34_end=0_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Fri Mar 11 00:55:37 2022 ------##.Rdata"
#"/Users/emdoughty/Dropbox/Code/R/Results/repIntMaster__this.rank=species_timebin=nalma_34to0_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Fri Mar 11 02:05:09 2022 ------##.Rdata"
occs <- read.csv("http://paleobiodb.org/data1.2/occs/list.csv?base_name=Mammalia&continent=NOA&max_ma=100&min_ma=0&timerule=overlap&show=full&limit=all", stringsAsFactors=TRUE, strip.white=TRUE)
occs <- occs[!occs$order %in% c("Cetacea", "Desmostylia", "Sirenia"), ]
occs <- occs[!occs$family %in% c("Allodelphinidae", "Balaenidae", "Balaenopteridae", "Delphinidae", "Desmatophocidae", "Desmostylidae",
"Didelphidae","Dugongidae","Enaliarctidae", "Eschrichtiidae","Iniidae", "Kentriodontidae", "Kogiidae",
"Odobenidae", "Otariidae", "Paleoparadoxiidae", "Panotariidae","Phocidae", "Physeteridae",
"Platanistidae", "Pontoporiidae", "Protocetidae", "Squalodontidae", "Ziphiidae"), ]
occs$accepted_name <- gsub(pattern = "[[:space:]]", replacement = "_", x = occs$accepted_name) #replace spaces with underscores
measure.mat <- getMeasureMatWithBodyMasses()
## [1] "Building measurement matrix..."
## **** Getting current taxon from PaleoBioDB 1 of 1018 (0.1%)
**** Getting current taxon from PaleoBioDB 2 of 1018 (0.2%)
**** Getting current taxon from PaleoBioDB 3 of 1018 (0.3%)
**** Getting current taxon from PaleoBioDB 4 of 1018 (0.4%)
**** Getting current taxon from PaleoBioDB 5 of 1018 (0.5%)
**** Getting current taxon from PaleoBioDB 6 of 1018 (0.6%)
**** Getting current taxon from PaleoBioDB 7 of 1018 (0.7%)
**** Getting current taxon from PaleoBioDB 8 of 1018 (0.8%)
**** Getting current taxon from PaleoBioDB 9 of 1018 (0.9%)
**** Getting current taxon from PaleoBioDB 10 of 1018 (1%)
**** Getting current taxon from PaleoBioDB 11 of 1018 (1.1%)
**** Getting current taxon from PaleoBioDB 12 of 1018 (1.2%)
**** Getting current taxon from PaleoBioDB 13 of 1018 (1.3%)
**** Getting current taxon from PaleoBioDB 14 of 1018 (1.4%)
**** Getting current taxon from PaleoBioDB 15 of 1018 (1.5%)
**** Getting current taxon from PaleoBioDB 16 of 1018 (1.6%)
**** Getting current taxon from PaleoBioDB 17 of 1018 (1.7%)
**** Getting current taxon from PaleoBioDB 18 of 1018 (1.8%)
**** Getting current taxon from PaleoBioDB 19 of 1018 (1.9%)
**** Getting current taxon from PaleoBioDB 20 of 1018 (2%)
**** Getting current taxon from PaleoBioDB 21 of 1018 (2.1%)
**** Getting current taxon from PaleoBioDB 22 of 1018 (2.2%)
**** Getting current taxon from PaleoBioDB 23 of 1018 (2.3%)
**** Getting current taxon from PaleoBioDB 24 of 1018 (2.4%)
**** Getting current taxon from PaleoBioDB 25 of 1018 (2.5%)
**** Getting current taxon from PaleoBioDB 26 of 1018 (2.6%)
**** Getting current taxon from PaleoBioDB 27 of 1018 (2.7%)
**** Getting current taxon from PaleoBioDB 28 of 1018 (2.8%)
**** Getting current taxon from PaleoBioDB 29 of 1018 (2.8%)
**** Getting current taxon from PaleoBioDB 30 of 1018 (2.9%)
**** Getting current taxon from PaleoBioDB 31 of 1018 (3%)
**** Getting current taxon from PaleoBioDB 32 of 1018 (3.1%)
**** Getting current taxon from PaleoBioDB 33 of 1018 (3.2%)
**** Getting current taxon from PaleoBioDB 34 of 1018 (3.3%)
**** Getting current taxon from PaleoBioDB 35 of 1018 (3.4%)
**** Getting current taxon from PaleoBioDB 36 of 1018 (3.5%)
**** Getting current taxon from PaleoBioDB 37 of 1018 (3.6%)
**** Getting current taxon from PaleoBioDB 38 of 1018 (3.7%)
**** Getting current taxon from PaleoBioDB 39 of 1018 (3.8%)
**** Getting current taxon from PaleoBioDB 40 of 1018 (3.9%)
**** Getting current taxon from PaleoBioDB 41 of 1018 (4%)
**** Getting current taxon from PaleoBioDB 42 of 1018 (4.1%)
**** Getting current taxon from PaleoBioDB 43 of 1018 (4.2%)
**** Getting current taxon from PaleoBioDB 44 of 1018 (4.3%)
**** Getting current taxon from PaleoBioDB 45 of 1018 (4.4%)
**** Getting current taxon from PaleoBioDB 46 of 1018 (4.5%)
**** Getting current taxon from PaleoBioDB 47 of 1018 (4.6%)
**** Getting current taxon from PaleoBioDB 48 of 1018 (4.7%)
**** Getting current taxon from PaleoBioDB 49 of 1018 (4.8%)
**** Getting current taxon from PaleoBioDB 50 of 1018 (4.9%)
**** Getting current taxon from PaleoBioDB 51 of 1018 (5%)
**** Getting current taxon from PaleoBioDB 52 of 1018 (5.1%)
**** Getting current taxon from PaleoBioDB 53 of 1018 (5.2%)
**** Getting current taxon from PaleoBioDB 54 of 1018 (5.3%)
**** Getting current taxon from PaleoBioDB 55 of 1018 (5.4%)
**** Getting current taxon from PaleoBioDB 56 of 1018 (5.5%)
**** Getting current taxon from PaleoBioDB 57 of 1018 (5.6%)
**** Getting current taxon from PaleoBioDB 58 of 1018 (5.7%)
**** Getting current taxon from PaleoBioDB 59 of 1018 (5.8%)
**** Getting current taxon from PaleoBioDB 60 of 1018 (5.9%)
**** Getting current taxon from PaleoBioDB 61 of 1018 (6%)
**** Getting current taxon from PaleoBioDB 62 of 1018 (6.1%)
**** Getting current taxon from PaleoBioDB 63 of 1018 (6.2%)
**** Getting current taxon from PaleoBioDB 64 of 1018 (6.3%)
**** Getting current taxon from PaleoBioDB 65 of 1018 (6.4%)
**** Getting current taxon from PaleoBioDB 66 of 1018 (6.5%)
**** Getting current taxon from PaleoBioDB 67 of 1018 (6.6%)
**** Getting current taxon from PaleoBioDB 68 of 1018 (6.7%)
**** Getting current taxon from PaleoBioDB 69 of 1018 (6.8%)
**** Getting current taxon from PaleoBioDB 70 of 1018 (6.9%)
**** Getting current taxon from PaleoBioDB 71 of 1018 (7%)
**** Getting current taxon from PaleoBioDB 72 of 1018 (7.1%)
**** Getting current taxon from PaleoBioDB 73 of 1018 (7.2%)
**** Getting current taxon from PaleoBioDB 74 of 1018 (7.3%)
**** Getting current taxon from PaleoBioDB 75 of 1018 (7.4%)
**** Getting current taxon from PaleoBioDB 76 of 1018 (7.5%)
**** Getting current taxon from PaleoBioDB 77 of 1018 (7.6%)
**** Getting current taxon from PaleoBioDB 78 of 1018 (7.7%)
**** Getting current taxon from PaleoBioDB 79 of 1018 (7.8%)
**** Getting current taxon from PaleoBioDB 80 of 1018 (7.9%)
**** Getting current taxon from PaleoBioDB 81 of 1018 (8%)
**** Getting current taxon from PaleoBioDB 82 of 1018 (8.1%)
**** Getting current taxon from PaleoBioDB 83 of 1018 (8.2%)
**** Getting current taxon from PaleoBioDB 84 of 1018 (8.3%)
**** Getting current taxon from PaleoBioDB 85 of 1018 (8.3%)
**** Getting current taxon from PaleoBioDB 86 of 1018 (8.4%)
**** Getting current taxon from PaleoBioDB 87 of 1018 (8.5%)
**** Getting current taxon from PaleoBioDB 88 of 1018 (8.6%)
**** Getting current taxon from PaleoBioDB 89 of 1018 (8.7%)
**** Getting current taxon from PaleoBioDB 90 of 1018 (8.8%)
**** Getting current taxon from PaleoBioDB 91 of 1018 (8.9%)
**** Getting current taxon from PaleoBioDB 92 of 1018 (9%)
**** Getting current taxon from PaleoBioDB 93 of 1018 (9.1%)
**** Getting current taxon from PaleoBioDB 94 of 1018 (9.2%)
**** Getting current taxon from PaleoBioDB 95 of 1018 (9.3%)
**** Getting current taxon from PaleoBioDB 96 of 1018 (9.4%)
**** Getting current taxon from PaleoBioDB 97 of 1018 (9.5%)
**** Getting current taxon from PaleoBioDB 98 of 1018 (9.6%)
**** Getting current taxon from PaleoBioDB 99 of 1018 (9.7%)
**** Getting current taxon from PaleoBioDB 100 of 1018 (9.8%)
**** Getting current taxon from PaleoBioDB 101 of 1018 (9.9%)
**** Getting current taxon from PaleoBioDB 102 of 1018 (10%)
**** Getting current taxon from PaleoBioDB 103 of 1018 (10.1%)
**** Getting current taxon from PaleoBioDB 104 of 1018 (10.2%)
**** Getting current taxon from PaleoBioDB 105 of 1018 (10.3%)
**** Getting current taxon from PaleoBioDB 106 of 1018 (10.4%)
**** Getting current taxon from PaleoBioDB 107 of 1018 (10.5%)
**** Getting current taxon from PaleoBioDB 108 of 1018 (10.6%)
**** Getting current taxon from PaleoBioDB 109 of 1018 (10.7%)
**** Getting current taxon from PaleoBioDB 110 of 1018 (10.8%)
**** Getting current taxon from PaleoBioDB 111 of 1018 (10.9%)
**** Getting current taxon from PaleoBioDB 112 of 1018 (11%)
**** Getting current taxon from PaleoBioDB 113 of 1018 (11.1%)
**** Getting current taxon from PaleoBioDB 114 of 1018 (11.2%)
**** Getting current taxon from PaleoBioDB 115 of 1018 (11.3%)
**** Getting current taxon from PaleoBioDB 116 of 1018 (11.4%)
**** Getting current taxon from PaleoBioDB 117 of 1018 (11.5%)
**** Getting current taxon from PaleoBioDB 118 of 1018 (11.6%)
**** Getting current taxon from PaleoBioDB 119 of 1018 (11.7%)
**** Getting current taxon from PaleoBioDB 120 of 1018 (11.8%)
**** Getting current taxon from PaleoBioDB 121 of 1018 (11.9%)
**** Getting current taxon from PaleoBioDB 122 of 1018 (12%)
**** Getting current taxon from PaleoBioDB 123 of 1018 (12.1%)
**** Getting current taxon from PaleoBioDB 124 of 1018 (12.2%)
**** Getting current taxon from PaleoBioDB 125 of 1018 (12.3%)
**** Getting current taxon from PaleoBioDB 126 of 1018 (12.4%)
**** Getting current taxon from PaleoBioDB 127 of 1018 (12.5%)
**** Getting current taxon from PaleoBioDB 128 of 1018 (12.6%)
**** Getting current taxon from PaleoBioDB 129 of 1018 (12.7%)
**** Getting current taxon from PaleoBioDB 130 of 1018 (12.8%)
**** Getting current taxon from PaleoBioDB 131 of 1018 (12.9%)
**** Getting current taxon from PaleoBioDB 132 of 1018 (13%)
**** Getting current taxon from PaleoBioDB 133 of 1018 (13.1%)
**** Getting current taxon from PaleoBioDB 134 of 1018 (13.2%)
**** Getting current taxon from PaleoBioDB 135 of 1018 (13.3%)
**** Getting current taxon from PaleoBioDB 136 of 1018 (13.4%)
**** Getting current taxon from PaleoBioDB 137 of 1018 (13.5%)
**** Getting current taxon from PaleoBioDB 138 of 1018 (13.6%)
**** Getting current taxon from PaleoBioDB 139 of 1018 (13.7%)
**** Getting current taxon from PaleoBioDB 140 of 1018 (13.8%)
**** Getting current taxon from PaleoBioDB 141 of 1018 (13.9%)
**** Getting current taxon from PaleoBioDB 142 of 1018 (13.9%)
**** Getting current taxon from PaleoBioDB 143 of 1018 (14%)
**** Getting current taxon from PaleoBioDB 144 of 1018 (14.1%)
**** Getting current taxon from PaleoBioDB 145 of 1018 (14.2%)
**** Getting current taxon from PaleoBioDB 146 of 1018 (14.3%)
**** Getting current taxon from PaleoBioDB 147 of 1018 (14.4%)
**** Getting current taxon from PaleoBioDB 148 of 1018 (14.5%)
**** Getting current taxon from PaleoBioDB 149 of 1018 (14.6%)
**** Getting current taxon from PaleoBioDB 150 of 1018 (14.7%)
**** Getting current taxon from PaleoBioDB 151 of 1018 (14.8%)
**** Getting current taxon from PaleoBioDB 152 of 1018 (14.9%)
**** Getting current taxon from PaleoBioDB 153 of 1018 (15%)
**** Getting current taxon from PaleoBioDB 154 of 1018 (15.1%)
**** Getting current taxon from PaleoBioDB 155 of 1018 (15.2%)
**** Getting current taxon from PaleoBioDB 156 of 1018 (15.3%)
**** Getting current taxon from PaleoBioDB 157 of 1018 (15.4%)
**** Getting current taxon from PaleoBioDB 158 of 1018 (15.5%)
**** Getting current taxon from PaleoBioDB 159 of 1018 (15.6%)
**** Getting current taxon from PaleoBioDB 160 of 1018 (15.7%)
**** Getting current taxon from PaleoBioDB 161 of 1018 (15.8%)
**** Getting current taxon from PaleoBioDB 162 of 1018 (15.9%)
**** Getting current taxon from PaleoBioDB 163 of 1018 (16%)
**** Getting current taxon from PaleoBioDB 164 of 1018 (16.1%)
**** Getting current taxon from PaleoBioDB 165 of 1018 (16.2%)
**** Getting current taxon from PaleoBioDB 166 of 1018 (16.3%)
**** Getting current taxon from PaleoBioDB 167 of 1018 (16.4%)
**** Getting current taxon from PaleoBioDB 168 of 1018 (16.5%)
**** Getting current taxon from PaleoBioDB 169 of 1018 (16.6%)
**** Getting current taxon from PaleoBioDB 170 of 1018 (16.7%)
**** Getting current taxon from PaleoBioDB 171 of 1018 (16.8%)
**** Getting current taxon from PaleoBioDB 172 of 1018 (16.9%)
**** Getting current taxon from PaleoBioDB 173 of 1018 (17%)
**** Getting current taxon from PaleoBioDB 174 of 1018 (17.1%)
**** Getting current taxon from PaleoBioDB 175 of 1018 (17.2%)
**** Getting current taxon from PaleoBioDB 176 of 1018 (17.3%)
**** Getting current taxon from PaleoBioDB 177 of 1018 (17.4%)
**** Getting current taxon from PaleoBioDB 178 of 1018 (17.5%)
**** Getting current taxon from PaleoBioDB 179 of 1018 (17.6%)
**** Getting current taxon from PaleoBioDB 180 of 1018 (17.7%)
**** Getting current taxon from PaleoBioDB 181 of 1018 (17.8%)
**** Getting current taxon from PaleoBioDB 182 of 1018 (17.9%)
**** Getting current taxon from PaleoBioDB 183 of 1018 (18%)
**** Getting current taxon from PaleoBioDB 184 of 1018 (18.1%)
**** Getting current taxon from PaleoBioDB 185 of 1018 (18.2%)
**** Getting current taxon from PaleoBioDB 186 of 1018 (18.3%)
**** Getting current taxon from PaleoBioDB 187 of 1018 (18.4%)
**** Getting current taxon from PaleoBioDB 188 of 1018 (18.5%)
**** Getting current taxon from PaleoBioDB 189 of 1018 (18.6%)
**** Getting current taxon from PaleoBioDB 190 of 1018 (18.7%)
**** Getting current taxon from PaleoBioDB 191 of 1018 (18.8%)
**** Getting current taxon from PaleoBioDB 192 of 1018 (18.9%)
**** Getting current taxon from PaleoBioDB 193 of 1018 (19%)
**** Getting current taxon from PaleoBioDB 194 of 1018 (19.1%)
**** Getting current taxon from PaleoBioDB 195 of 1018 (19.2%)
**** Getting current taxon from PaleoBioDB 196 of 1018 (19.3%)
**** Getting current taxon from PaleoBioDB 197 of 1018 (19.4%)
**** Getting current taxon from PaleoBioDB 198 of 1018 (19.4%)
**** Getting current taxon from PaleoBioDB 199 of 1018 (19.5%)
**** Getting current taxon from PaleoBioDB 200 of 1018 (19.6%)
**** Getting current taxon from PaleoBioDB 201 of 1018 (19.7%)
**** Getting current taxon from PaleoBioDB 202 of 1018 (19.8%)
**** Getting current taxon from PaleoBioDB 203 of 1018 (19.9%)
**** Getting current taxon from PaleoBioDB 204 of 1018 (20%)
**** Getting current taxon from PaleoBioDB 205 of 1018 (20.1%)
**** Getting current taxon from PaleoBioDB 206 of 1018 (20.2%)
**** Getting current taxon from PaleoBioDB 207 of 1018 (20.3%)
**** Getting current taxon from PaleoBioDB 208 of 1018 (20.4%)
**** Getting current taxon from PaleoBioDB 209 of 1018 (20.5%)
## Warning in file(file, "rt"): URL 'https://paleobiodb.org/data1.2/taxa/
## single.csv?name=Desmatippus%20avus': status was 'Couldn't connect to
## server'
## Error in file(file, "rt") :
## cannot open the connection to 'https://paleobiodb.org/data1.2/taxa/single.csv?name=Desmatippus%20avus'
## Warning: The taxon "Desmatippus avus" cannot be found in the Paleobiology
## Database
## **** Getting current taxon from PaleoBioDB 210 of 1018 (20.6%)
**** Getting current taxon from PaleoBioDB 211 of 1018 (20.7%)
**** Getting current taxon from PaleoBioDB 212 of 1018 (20.8%)
**** Getting current taxon from PaleoBioDB 213 of 1018 (20.9%)
**** Getting current taxon from PaleoBioDB 214 of 1018 (21%)
**** Getting current taxon from PaleoBioDB 215 of 1018 (21.1%)
**** Getting current taxon from PaleoBioDB 216 of 1018 (21.2%)
**** Getting current taxon from PaleoBioDB 217 of 1018 (21.3%)
**** Getting current taxon from PaleoBioDB 218 of 1018 (21.4%)
**** Getting current taxon from PaleoBioDB 219 of 1018 (21.5%)
**** Getting current taxon from PaleoBioDB 220 of 1018 (21.6%)
**** Getting current taxon from PaleoBioDB 221 of 1018 (21.7%)
**** Getting current taxon from PaleoBioDB 222 of 1018 (21.8%)
**** Getting current taxon from PaleoBioDB 223 of 1018 (21.9%)
**** Getting current taxon from PaleoBioDB 224 of 1018 (22%)
**** Getting current taxon from PaleoBioDB 225 of 1018 (22.1%)
**** Getting current taxon from PaleoBioDB 226 of 1018 (22.2%)
**** Getting current taxon from PaleoBioDB 227 of 1018 (22.3%)
**** Getting current taxon from PaleoBioDB 228 of 1018 (22.4%)
**** Getting current taxon from PaleoBioDB 229 of 1018 (22.5%)
**** Getting current taxon from PaleoBioDB 230 of 1018 (22.6%)
**** Getting current taxon from PaleoBioDB 231 of 1018 (22.7%)
**** Getting current taxon from PaleoBioDB 232 of 1018 (22.8%)
**** Getting current taxon from PaleoBioDB 233 of 1018 (22.9%)
**** Getting current taxon from PaleoBioDB 234 of 1018 (23%)
**** Getting current taxon from PaleoBioDB 235 of 1018 (23.1%)
**** Getting current taxon from PaleoBioDB 236 of 1018 (23.2%)
**** Getting current taxon from PaleoBioDB 237 of 1018 (23.3%)
**** Getting current taxon from PaleoBioDB 238 of 1018 (23.4%)
**** Getting current taxon from PaleoBioDB 239 of 1018 (23.5%)
**** Getting current taxon from PaleoBioDB 240 of 1018 (23.6%)
**** Getting current taxon from PaleoBioDB 241 of 1018 (23.7%)
**** Getting current taxon from PaleoBioDB 242 of 1018 (23.8%)
**** Getting current taxon from PaleoBioDB 243 of 1018 (23.9%)
**** Getting current taxon from PaleoBioDB 244 of 1018 (24%)
**** Getting current taxon from PaleoBioDB 245 of 1018 (24.1%)
**** Getting current taxon from PaleoBioDB 246 of 1018 (24.2%)
**** Getting current taxon from PaleoBioDB 247 of 1018 (24.3%)
**** Getting current taxon from PaleoBioDB 248 of 1018 (24.4%)
**** Getting current taxon from PaleoBioDB 249 of 1018 (24.5%)
**** Getting current taxon from PaleoBioDB 250 of 1018 (24.6%)
**** Getting current taxon from PaleoBioDB 251 of 1018 (24.7%)
**** Getting current taxon from PaleoBioDB 252 of 1018 (24.8%)
**** Getting current taxon from PaleoBioDB 253 of 1018 (24.9%)
**** Getting current taxon from PaleoBioDB 254 of 1018 (25%)
**** Getting current taxon from PaleoBioDB 255 of 1018 (25%)
**** Getting current taxon from PaleoBioDB 256 of 1018 (25.1%)
**** Getting current taxon from PaleoBioDB 257 of 1018 (25.2%)
**** Getting current taxon from PaleoBioDB 258 of 1018 (25.3%)
**** Getting current taxon from PaleoBioDB 259 of 1018 (25.4%)
**** Getting current taxon from PaleoBioDB 260 of 1018 (25.5%)
**** Getting current taxon from PaleoBioDB 261 of 1018 (25.6%)
**** Getting current taxon from PaleoBioDB 262 of 1018 (25.7%)
**** Getting current taxon from PaleoBioDB 263 of 1018 (25.8%)
**** Getting current taxon from PaleoBioDB 264 of 1018 (25.9%)
**** Getting current taxon from PaleoBioDB 265 of 1018 (26%)
**** Getting current taxon from PaleoBioDB 266 of 1018 (26.1%)
**** Getting current taxon from PaleoBioDB 267 of 1018 (26.2%)
**** Getting current taxon from PaleoBioDB 268 of 1018 (26.3%)
**** Getting current taxon from PaleoBioDB 269 of 1018 (26.4%)
**** Getting current taxon from PaleoBioDB 270 of 1018 (26.5%)
**** Getting current taxon from PaleoBioDB 271 of 1018 (26.6%)
**** Getting current taxon from PaleoBioDB 272 of 1018 (26.7%)
**** Getting current taxon from PaleoBioDB 273 of 1018 (26.8%)
**** Getting current taxon from PaleoBioDB 274 of 1018 (26.9%)
**** Getting current taxon from PaleoBioDB 275 of 1018 (27%)
**** Getting current taxon from PaleoBioDB 276 of 1018 (27.1%)
**** Getting current taxon from PaleoBioDB 277 of 1018 (27.2%)
**** Getting current taxon from PaleoBioDB 278 of 1018 (27.3%)
**** Getting current taxon from PaleoBioDB 279 of 1018 (27.4%)
**** Getting current taxon from PaleoBioDB 280 of 1018 (27.5%)
**** Getting current taxon from PaleoBioDB 281 of 1018 (27.6%)
**** Getting current taxon from PaleoBioDB 282 of 1018 (27.7%)
**** Getting current taxon from PaleoBioDB 283 of 1018 (27.8%)
**** Getting current taxon from PaleoBioDB 284 of 1018 (27.9%)
**** Getting current taxon from PaleoBioDB 285 of 1018 (28%)
**** Getting current taxon from PaleoBioDB 286 of 1018 (28.1%)
**** Getting current taxon from PaleoBioDB 287 of 1018 (28.2%)
**** Getting current taxon from PaleoBioDB 288 of 1018 (28.3%)
**** Getting current taxon from PaleoBioDB 289 of 1018 (28.4%)
**** Getting current taxon from PaleoBioDB 290 of 1018 (28.5%)
**** Getting current taxon from PaleoBioDB 291 of 1018 (28.6%)
**** Getting current taxon from PaleoBioDB 292 of 1018 (28.7%)
**** Getting current taxon from PaleoBioDB 293 of 1018 (28.8%)
**** Getting current taxon from PaleoBioDB 294 of 1018 (28.9%)
**** Getting current taxon from PaleoBioDB 295 of 1018 (29%)
**** Getting current taxon from PaleoBioDB 296 of 1018 (29.1%)
**** Getting current taxon from PaleoBioDB 297 of 1018 (29.2%)
**** Getting current taxon from PaleoBioDB 298 of 1018 (29.3%)
**** Getting current taxon from PaleoBioDB 299 of 1018 (29.4%)
**** Getting current taxon from PaleoBioDB 300 of 1018 (29.5%)
**** Getting current taxon from PaleoBioDB 301 of 1018 (29.6%)
**** Getting current taxon from PaleoBioDB 302 of 1018 (29.7%)
**** Getting current taxon from PaleoBioDB 303 of 1018 (29.8%)
**** Getting current taxon from PaleoBioDB 304 of 1018 (29.9%)
**** Getting current taxon from PaleoBioDB 305 of 1018 (30%)
**** Getting current taxon from PaleoBioDB 306 of 1018 (30.1%)
**** Getting current taxon from PaleoBioDB 307 of 1018 (30.2%)
**** Getting current taxon from PaleoBioDB 308 of 1018 (30.3%)
**** Getting current taxon from PaleoBioDB 309 of 1018 (30.4%)
**** Getting current taxon from PaleoBioDB 310 of 1018 (30.5%)
**** Getting current taxon from PaleoBioDB 311 of 1018 (30.6%)
**** Getting current taxon from PaleoBioDB 312 of 1018 (30.6%)
**** Getting current taxon from PaleoBioDB 313 of 1018 (30.7%)
**** Getting current taxon from PaleoBioDB 314 of 1018 (30.8%)
**** Getting current taxon from PaleoBioDB 315 of 1018 (30.9%)
**** Getting current taxon from PaleoBioDB 316 of 1018 (31%)
**** Getting current taxon from PaleoBioDB 317 of 1018 (31.1%)
**** Getting current taxon from PaleoBioDB 318 of 1018 (31.2%)
**** Getting current taxon from PaleoBioDB 319 of 1018 (31.3%)
**** Getting current taxon from PaleoBioDB 320 of 1018 (31.4%)
**** Getting current taxon from PaleoBioDB 321 of 1018 (31.5%)
**** Getting current taxon from PaleoBioDB 322 of 1018 (31.6%)
**** Getting current taxon from PaleoBioDB 323 of 1018 (31.7%)
**** Getting current taxon from PaleoBioDB 324 of 1018 (31.8%)
**** Getting current taxon from PaleoBioDB 325 of 1018 (31.9%)
**** Getting current taxon from PaleoBioDB 326 of 1018 (32%)
**** Getting current taxon from PaleoBioDB 327 of 1018 (32.1%)
**** Getting current taxon from PaleoBioDB 328 of 1018 (32.2%)
**** Getting current taxon from PaleoBioDB 329 of 1018 (32.3%)
**** Getting current taxon from PaleoBioDB 330 of 1018 (32.4%)
**** Getting current taxon from PaleoBioDB 331 of 1018 (32.5%)
**** Getting current taxon from PaleoBioDB 332 of 1018 (32.6%)
**** Getting current taxon from PaleoBioDB 333 of 1018 (32.7%)
**** Getting current taxon from PaleoBioDB 334 of 1018 (32.8%)
**** Getting current taxon from PaleoBioDB 335 of 1018 (32.9%)
**** Getting current taxon from PaleoBioDB 336 of 1018 (33%)
**** Getting current taxon from PaleoBioDB 337 of 1018 (33.1%)
**** Getting current taxon from PaleoBioDB 338 of 1018 (33.2%)
**** Getting current taxon from PaleoBioDB 339 of 1018 (33.3%)
**** Getting current taxon from PaleoBioDB 340 of 1018 (33.4%)
**** Getting current taxon from PaleoBioDB 341 of 1018 (33.5%)
**** Getting current taxon from PaleoBioDB 342 of 1018 (33.6%)
**** Getting current taxon from PaleoBioDB 343 of 1018 (33.7%)
**** Getting current taxon from PaleoBioDB 344 of 1018 (33.8%)
**** Getting current taxon from PaleoBioDB 345 of 1018 (33.9%)
**** Getting current taxon from PaleoBioDB 346 of 1018 (34%)
**** Getting current taxon from PaleoBioDB 347 of 1018 (34.1%)
**** Getting current taxon from PaleoBioDB 348 of 1018 (34.2%)
**** Getting current taxon from PaleoBioDB 349 of 1018 (34.3%)
**** Getting current taxon from PaleoBioDB 350 of 1018 (34.4%)
**** Getting current taxon from PaleoBioDB 351 of 1018 (34.5%)
**** Getting current taxon from PaleoBioDB 352 of 1018 (34.6%)
**** Getting current taxon from PaleoBioDB 353 of 1018 (34.7%)
**** Getting current taxon from PaleoBioDB 354 of 1018 (34.8%)
**** Getting current taxon from PaleoBioDB 355 of 1018 (34.9%)
**** Getting current taxon from PaleoBioDB 356 of 1018 (35%)
**** Getting current taxon from PaleoBioDB 357 of 1018 (35.1%)
**** Getting current taxon from PaleoBioDB 358 of 1018 (35.2%)
**** Getting current taxon from PaleoBioDB 359 of 1018 (35.3%)
**** Getting current taxon from PaleoBioDB 360 of 1018 (35.4%)
**** Getting current taxon from PaleoBioDB 361 of 1018 (35.5%)
**** Getting current taxon from PaleoBioDB 362 of 1018 (35.6%)
**** Getting current taxon from PaleoBioDB 363 of 1018 (35.7%)
**** Getting current taxon from PaleoBioDB 364 of 1018 (35.8%)
**** Getting current taxon from PaleoBioDB 365 of 1018 (35.9%)
**** Getting current taxon from PaleoBioDB 366 of 1018 (36%)
**** Getting current taxon from PaleoBioDB 367 of 1018 (36.1%)
**** Getting current taxon from PaleoBioDB 368 of 1018 (36.1%)
**** Getting current taxon from PaleoBioDB 369 of 1018 (36.2%)
**** Getting current taxon from PaleoBioDB 370 of 1018 (36.3%)
**** Getting current taxon from PaleoBioDB 371 of 1018 (36.4%)
**** Getting current taxon from PaleoBioDB 372 of 1018 (36.5%)
**** Getting current taxon from PaleoBioDB 373 of 1018 (36.6%)
**** Getting current taxon from PaleoBioDB 374 of 1018 (36.7%)
**** Getting current taxon from PaleoBioDB 375 of 1018 (36.8%)
**** Getting current taxon from PaleoBioDB 376 of 1018 (36.9%)
**** Getting current taxon from PaleoBioDB 377 of 1018 (37%)
**** Getting current taxon from PaleoBioDB 378 of 1018 (37.1%)
**** Getting current taxon from PaleoBioDB 379 of 1018 (37.2%)
**** Getting current taxon from PaleoBioDB 380 of 1018 (37.3%)
**** Getting current taxon from PaleoBioDB 381 of 1018 (37.4%)
**** Getting current taxon from PaleoBioDB 382 of 1018 (37.5%)
**** Getting current taxon from PaleoBioDB 383 of 1018 (37.6%)
**** Getting current taxon from PaleoBioDB 384 of 1018 (37.7%)
**** Getting current taxon from PaleoBioDB 385 of 1018 (37.8%)
**** Getting current taxon from PaleoBioDB 386 of 1018 (37.9%)
**** Getting current taxon from PaleoBioDB 387 of 1018 (38%)
**** Getting current taxon from PaleoBioDB 388 of 1018 (38.1%)
**** Getting current taxon from PaleoBioDB 389 of 1018 (38.2%)
**** Getting current taxon from PaleoBioDB 390 of 1018 (38.3%)
**** Getting current taxon from PaleoBioDB 391 of 1018 (38.4%)
**** Getting current taxon from PaleoBioDB 392 of 1018 (38.5%)
**** Getting current taxon from PaleoBioDB 393 of 1018 (38.6%)
**** Getting current taxon from PaleoBioDB 394 of 1018 (38.7%)
**** Getting current taxon from PaleoBioDB 395 of 1018 (38.8%)
**** Getting current taxon from PaleoBioDB 396 of 1018 (38.9%)
**** Getting current taxon from PaleoBioDB 397 of 1018 (39%)
**** Getting current taxon from PaleoBioDB 398 of 1018 (39.1%)
**** Getting current taxon from PaleoBioDB 399 of 1018 (39.2%)
**** Getting current taxon from PaleoBioDB 400 of 1018 (39.3%)
**** Getting current taxon from PaleoBioDB 401 of 1018 (39.4%)
**** Getting current taxon from PaleoBioDB 402 of 1018 (39.5%)
**** Getting current taxon from PaleoBioDB 403 of 1018 (39.6%)
**** Getting current taxon from PaleoBioDB 404 of 1018 (39.7%)
**** Getting current taxon from PaleoBioDB 405 of 1018 (39.8%)
**** Getting current taxon from PaleoBioDB 406 of 1018 (39.9%)
**** Getting current taxon from PaleoBioDB 407 of 1018 (40%)
**** Getting current taxon from PaleoBioDB 408 of 1018 (40.1%)
**** Getting current taxon from PaleoBioDB 409 of 1018 (40.2%)
**** Getting current taxon from PaleoBioDB 410 of 1018 (40.3%)
**** Getting current taxon from PaleoBioDB 411 of 1018 (40.4%)
**** Getting current taxon from PaleoBioDB 412 of 1018 (40.5%)
**** Getting current taxon from PaleoBioDB 413 of 1018 (40.6%)
**** Getting current taxon from PaleoBioDB 414 of 1018 (40.7%)
**** Getting current taxon from PaleoBioDB 415 of 1018 (40.8%)
**** Getting current taxon from PaleoBioDB 416 of 1018 (40.9%)
**** Getting current taxon from PaleoBioDB 417 of 1018 (41%)
**** Getting current taxon from PaleoBioDB 418 of 1018 (41.1%)
**** Getting current taxon from PaleoBioDB 419 of 1018 (41.2%)
**** Getting current taxon from PaleoBioDB 420 of 1018 (41.3%)
**** Getting current taxon from PaleoBioDB 421 of 1018 (41.4%)
**** Getting current taxon from PaleoBioDB 422 of 1018 (41.5%)
**** Getting current taxon from PaleoBioDB 423 of 1018 (41.6%)
**** Getting current taxon from PaleoBioDB 424 of 1018 (41.7%)
**** Getting current taxon from PaleoBioDB 425 of 1018 (41.7%)
**** Getting current taxon from PaleoBioDB 426 of 1018 (41.8%)
**** Getting current taxon from PaleoBioDB 427 of 1018 (41.9%)
**** Getting current taxon from PaleoBioDB 428 of 1018 (42%)
**** Getting current taxon from PaleoBioDB 429 of 1018 (42.1%)
**** Getting current taxon from PaleoBioDB 430 of 1018 (42.2%)
**** Getting current taxon from PaleoBioDB 431 of 1018 (42.3%)
**** Getting current taxon from PaleoBioDB 432 of 1018 (42.4%)
**** Getting current taxon from PaleoBioDB 433 of 1018 (42.5%)
**** Getting current taxon from PaleoBioDB 434 of 1018 (42.6%)
**** Getting current taxon from PaleoBioDB 435 of 1018 (42.7%)
**** Getting current taxon from PaleoBioDB 436 of 1018 (42.8%)
**** Getting current taxon from PaleoBioDB 437 of 1018 (42.9%)
**** Getting current taxon from PaleoBioDB 438 of 1018 (43%)
**** Getting current taxon from PaleoBioDB 439 of 1018 (43.1%)
**** Getting current taxon from PaleoBioDB 440 of 1018 (43.2%)
**** Getting current taxon from PaleoBioDB 441 of 1018 (43.3%)
**** Getting current taxon from PaleoBioDB 442 of 1018 (43.4%)
**** Getting current taxon from PaleoBioDB 443 of 1018 (43.5%)
**** Getting current taxon from PaleoBioDB 444 of 1018 (43.6%)
**** Getting current taxon from PaleoBioDB 445 of 1018 (43.7%)
**** Getting current taxon from PaleoBioDB 446 of 1018 (43.8%)
**** Getting current taxon from PaleoBioDB 447 of 1018 (43.9%)
**** Getting current taxon from PaleoBioDB 448 of 1018 (44%)
**** Getting current taxon from PaleoBioDB 449 of 1018 (44.1%)
**** Getting current taxon from PaleoBioDB 450 of 1018 (44.2%)
**** Getting current taxon from PaleoBioDB 451 of 1018 (44.3%)
**** Getting current taxon from PaleoBioDB 452 of 1018 (44.4%)
**** Getting current taxon from PaleoBioDB 453 of 1018 (44.5%)
**** Getting current taxon from PaleoBioDB 454 of 1018 (44.6%)
**** Getting current taxon from PaleoBioDB 455 of 1018 (44.7%)
**** Getting current taxon from PaleoBioDB 456 of 1018 (44.8%)
**** Getting current taxon from PaleoBioDB 457 of 1018 (44.9%)
**** Getting current taxon from PaleoBioDB 458 of 1018 (45%)
**** Getting current taxon from PaleoBioDB 459 of 1018 (45.1%)
**** Getting current taxon from PaleoBioDB 460 of 1018 (45.2%)
**** Getting current taxon from PaleoBioDB 461 of 1018 (45.3%)
**** Getting current taxon from PaleoBioDB 462 of 1018 (45.4%)
**** Getting current taxon from PaleoBioDB 463 of 1018 (45.5%)
**** Getting current taxon from PaleoBioDB 464 of 1018 (45.6%)
**** Getting current taxon from PaleoBioDB 465 of 1018 (45.7%)
**** Getting current taxon from PaleoBioDB 466 of 1018 (45.8%)
**** Getting current taxon from PaleoBioDB 467 of 1018 (45.9%)
**** Getting current taxon from PaleoBioDB 468 of 1018 (46%)
**** Getting current taxon from PaleoBioDB 469 of 1018 (46.1%)
**** Getting current taxon from PaleoBioDB 470 of 1018 (46.2%)
**** Getting current taxon from PaleoBioDB 471 of 1018 (46.3%)
**** Getting current taxon from PaleoBioDB 472 of 1018 (46.4%)
**** Getting current taxon from PaleoBioDB 473 of 1018 (46.5%)
**** Getting current taxon from PaleoBioDB 474 of 1018 (46.6%)
**** Getting current taxon from PaleoBioDB 475 of 1018 (46.7%)
**** Getting current taxon from PaleoBioDB 476 of 1018 (46.8%)
**** Getting current taxon from PaleoBioDB 477 of 1018 (46.9%)
**** Getting current taxon from PaleoBioDB 478 of 1018 (47%)
**** Getting current taxon from PaleoBioDB 479 of 1018 (47.1%)
**** Getting current taxon from PaleoBioDB 480 of 1018 (47.2%)
**** Getting current taxon from PaleoBioDB 481 of 1018 (47.2%)
**** Getting current taxon from PaleoBioDB 482 of 1018 (47.3%)
**** Getting current taxon from PaleoBioDB 483 of 1018 (47.4%)
**** Getting current taxon from PaleoBioDB 484 of 1018 (47.5%)
**** Getting current taxon from PaleoBioDB 485 of 1018 (47.6%)
**** Getting current taxon from PaleoBioDB 486 of 1018 (47.7%)
**** Getting current taxon from PaleoBioDB 487 of 1018 (47.8%)
**** Getting current taxon from PaleoBioDB 488 of 1018 (47.9%)
**** Getting current taxon from PaleoBioDB 489 of 1018 (48%)
**** Getting current taxon from PaleoBioDB 490 of 1018 (48.1%)
**** Getting current taxon from PaleoBioDB 491 of 1018 (48.2%)
**** Getting current taxon from PaleoBioDB 492 of 1018 (48.3%)
**** Getting current taxon from PaleoBioDB 493 of 1018 (48.4%)
**** Getting current taxon from PaleoBioDB 494 of 1018 (48.5%)
**** Getting current taxon from PaleoBioDB 495 of 1018 (48.6%)
**** Getting current taxon from PaleoBioDB 496 of 1018 (48.7%)
**** Getting current taxon from PaleoBioDB 497 of 1018 (48.8%)
**** Getting current taxon from PaleoBioDB 498 of 1018 (48.9%)
**** Getting current taxon from PaleoBioDB 499 of 1018 (49%)
**** Getting current taxon from PaleoBioDB 500 of 1018 (49.1%)
**** Getting current taxon from PaleoBioDB 501 of 1018 (49.2%)
**** Getting current taxon from PaleoBioDB 502 of 1018 (49.3%)
**** Getting current taxon from PaleoBioDB 503 of 1018 (49.4%)
**** Getting current taxon from PaleoBioDB 504 of 1018 (49.5%)
**** Getting current taxon from PaleoBioDB 505 of 1018 (49.6%)
**** Getting current taxon from PaleoBioDB 506 of 1018 (49.7%)
**** Getting current taxon from PaleoBioDB 507 of 1018 (49.8%)
**** Getting current taxon from PaleoBioDB 508 of 1018 (49.9%)
**** Getting current taxon from PaleoBioDB 509 of 1018 (50%)
**** Getting current taxon from PaleoBioDB 510 of 1018 (50.1%)
**** Getting current taxon from PaleoBioDB 511 of 1018 (50.2%)
**** Getting current taxon from PaleoBioDB 512 of 1018 (50.3%)
**** Getting current taxon from PaleoBioDB 513 of 1018 (50.4%)
**** Getting current taxon from PaleoBioDB 514 of 1018 (50.5%)
**** Getting current taxon from PaleoBioDB 515 of 1018 (50.6%)
**** Getting current taxon from PaleoBioDB 516 of 1018 (50.7%)
**** Getting current taxon from PaleoBioDB 517 of 1018 (50.8%)
**** Getting current taxon from PaleoBioDB 518 of 1018 (50.9%)
**** Getting current taxon from PaleoBioDB 519 of 1018 (51%)
**** Getting current taxon from PaleoBioDB 520 of 1018 (51.1%)
**** Getting current taxon from PaleoBioDB 521 of 1018 (51.2%)
**** Getting current taxon from PaleoBioDB 522 of 1018 (51.3%)
**** Getting current taxon from PaleoBioDB 523 of 1018 (51.4%)
**** Getting current taxon from PaleoBioDB 524 of 1018 (51.5%)
**** Getting current taxon from PaleoBioDB 525 of 1018 (51.6%)
**** Getting current taxon from PaleoBioDB 526 of 1018 (51.7%)
**** Getting current taxon from PaleoBioDB 527 of 1018 (51.8%)
**** Getting current taxon from PaleoBioDB 528 of 1018 (51.9%)
**** Getting current taxon from PaleoBioDB 529 of 1018 (52%)
**** Getting current taxon from PaleoBioDB 530 of 1018 (52.1%)
**** Getting current taxon from PaleoBioDB 531 of 1018 (52.2%)
**** Getting current taxon from PaleoBioDB 532 of 1018 (52.3%)
**** Getting current taxon from PaleoBioDB 533 of 1018 (52.4%)
**** Getting current taxon from PaleoBioDB 534 of 1018 (52.5%)
**** Getting current taxon from PaleoBioDB 535 of 1018 (52.6%)
**** Getting current taxon from PaleoBioDB 536 of 1018 (52.7%)
**** Getting current taxon from PaleoBioDB 537 of 1018 (52.8%)
**** Getting current taxon from PaleoBioDB 538 of 1018 (52.8%)
**** Getting current taxon from PaleoBioDB 539 of 1018 (52.9%)
**** Getting current taxon from PaleoBioDB 540 of 1018 (53%)
**** Getting current taxon from PaleoBioDB 541 of 1018 (53.1%)
**** Getting current taxon from PaleoBioDB 542 of 1018 (53.2%)
**** Getting current taxon from PaleoBioDB 543 of 1018 (53.3%)
**** Getting current taxon from PaleoBioDB 544 of 1018 (53.4%)
**** Getting current taxon from PaleoBioDB 545 of 1018 (53.5%)
**** Getting current taxon from PaleoBioDB 546 of 1018 (53.6%)
**** Getting current taxon from PaleoBioDB 547 of 1018 (53.7%)
**** Getting current taxon from PaleoBioDB 548 of 1018 (53.8%)
**** Getting current taxon from PaleoBioDB 549 of 1018 (53.9%)
**** Getting current taxon from PaleoBioDB 550 of 1018 (54%)
**** Getting current taxon from PaleoBioDB 551 of 1018 (54.1%)
**** Getting current taxon from PaleoBioDB 552 of 1018 (54.2%)
**** Getting current taxon from PaleoBioDB 553 of 1018 (54.3%)
**** Getting current taxon from PaleoBioDB 554 of 1018 (54.4%)
**** Getting current taxon from PaleoBioDB 555 of 1018 (54.5%)
**** Getting current taxon from PaleoBioDB 556 of 1018 (54.6%)
**** Getting current taxon from PaleoBioDB 557 of 1018 (54.7%)
**** Getting current taxon from PaleoBioDB 558 of 1018 (54.8%)
**** Getting current taxon from PaleoBioDB 559 of 1018 (54.9%)
**** Getting current taxon from PaleoBioDB 560 of 1018 (55%)
**** Getting current taxon from PaleoBioDB 561 of 1018 (55.1%)
**** Getting current taxon from PaleoBioDB 562 of 1018 (55.2%)
**** Getting current taxon from PaleoBioDB 563 of 1018 (55.3%)
**** Getting current taxon from PaleoBioDB 564 of 1018 (55.4%)
**** Getting current taxon from PaleoBioDB 565 of 1018 (55.5%)
**** Getting current taxon from PaleoBioDB 566 of 1018 (55.6%)
**** Getting current taxon from PaleoBioDB 567 of 1018 (55.7%)
**** Getting current taxon from PaleoBioDB 568 of 1018 (55.8%)
**** Getting current taxon from PaleoBioDB 569 of 1018 (55.9%)
**** Getting current taxon from PaleoBioDB 570 of 1018 (56%)
**** Getting current taxon from PaleoBioDB 571 of 1018 (56.1%)
**** Getting current taxon from PaleoBioDB 572 of 1018 (56.2%)
**** Getting current taxon from PaleoBioDB 573 of 1018 (56.3%)
**** Getting current taxon from PaleoBioDB 574 of 1018 (56.4%)
**** Getting current taxon from PaleoBioDB 575 of 1018 (56.5%)
**** Getting current taxon from PaleoBioDB 576 of 1018 (56.6%)
**** Getting current taxon from PaleoBioDB 577 of 1018 (56.7%)
**** Getting current taxon from PaleoBioDB 578 of 1018 (56.8%)
**** Getting current taxon from PaleoBioDB 579 of 1018 (56.9%)
**** Getting current taxon from PaleoBioDB 580 of 1018 (57%)
**** Getting current taxon from PaleoBioDB 581 of 1018 (57.1%)
**** Getting current taxon from PaleoBioDB 582 of 1018 (57.2%)
**** Getting current taxon from PaleoBioDB 583 of 1018 (57.3%)
**** Getting current taxon from PaleoBioDB 584 of 1018 (57.4%)
**** Getting current taxon from PaleoBioDB 585 of 1018 (57.5%)
**** Getting current taxon from PaleoBioDB 586 of 1018 (57.6%)
**** Getting current taxon from PaleoBioDB 587 of 1018 (57.7%)
**** Getting current taxon from PaleoBioDB 588 of 1018 (57.8%)
**** Getting current taxon from PaleoBioDB 589 of 1018 (57.9%)
**** Getting current taxon from PaleoBioDB 590 of 1018 (58%)
**** Getting current taxon from PaleoBioDB 591 of 1018 (58.1%)
**** Getting current taxon from PaleoBioDB 592 of 1018 (58.2%)
**** Getting current taxon from PaleoBioDB 593 of 1018 (58.3%)
**** Getting current taxon from PaleoBioDB 594 of 1018 (58.3%)
**** Getting current taxon from PaleoBioDB 595 of 1018 (58.4%)
**** Getting current taxon from PaleoBioDB 596 of 1018 (58.5%)
**** Getting current taxon from PaleoBioDB 597 of 1018 (58.6%)
**** Getting current taxon from PaleoBioDB 598 of 1018 (58.7%)
**** Getting current taxon from PaleoBioDB 599 of 1018 (58.8%)
**** Getting current taxon from PaleoBioDB 600 of 1018 (58.9%)
**** Getting current taxon from PaleoBioDB 601 of 1018 (59%)
**** Getting current taxon from PaleoBioDB 602 of 1018 (59.1%)
**** Getting current taxon from PaleoBioDB 603 of 1018 (59.2%)
**** Getting current taxon from PaleoBioDB 604 of 1018 (59.3%)
**** Getting current taxon from PaleoBioDB 605 of 1018 (59.4%)
**** Getting current taxon from PaleoBioDB 606 of 1018 (59.5%)
**** Getting current taxon from PaleoBioDB 607 of 1018 (59.6%)
**** Getting current taxon from PaleoBioDB 608 of 1018 (59.7%)
**** Getting current taxon from PaleoBioDB 609 of 1018 (59.8%)
**** Getting current taxon from PaleoBioDB 610 of 1018 (59.9%)
**** Getting current taxon from PaleoBioDB 611 of 1018 (60%)
**** Getting current taxon from PaleoBioDB 612 of 1018 (60.1%)
**** Getting current taxon from PaleoBioDB 613 of 1018 (60.2%)
**** Getting current taxon from PaleoBioDB 614 of 1018 (60.3%)
**** Getting current taxon from PaleoBioDB 615 of 1018 (60.4%)
**** Getting current taxon from PaleoBioDB 616 of 1018 (60.5%)
**** Getting current taxon from PaleoBioDB 617 of 1018 (60.6%)
**** Getting current taxon from PaleoBioDB 618 of 1018 (60.7%)
**** Getting current taxon from PaleoBioDB 619 of 1018 (60.8%)
**** Getting current taxon from PaleoBioDB 620 of 1018 (60.9%)
**** Getting current taxon from PaleoBioDB 621 of 1018 (61%)
**** Getting current taxon from PaleoBioDB 622 of 1018 (61.1%)
**** Getting current taxon from PaleoBioDB 623 of 1018 (61.2%)
**** Getting current taxon from PaleoBioDB 624 of 1018 (61.3%)
**** Getting current taxon from PaleoBioDB 625 of 1018 (61.4%)
**** Getting current taxon from PaleoBioDB 626 of 1018 (61.5%)
**** Getting current taxon from PaleoBioDB 627 of 1018 (61.6%)
**** Getting current taxon from PaleoBioDB 628 of 1018 (61.7%)
**** Getting current taxon from PaleoBioDB 629 of 1018 (61.8%)
**** Getting current taxon from PaleoBioDB 630 of 1018 (61.9%)
**** Getting current taxon from PaleoBioDB 631 of 1018 (62%)
**** Getting current taxon from PaleoBioDB 632 of 1018 (62.1%)
**** Getting current taxon from PaleoBioDB 633 of 1018 (62.2%)
**** Getting current taxon from PaleoBioDB 634 of 1018 (62.3%)
**** Getting current taxon from PaleoBioDB 635 of 1018 (62.4%)
**** Getting current taxon from PaleoBioDB 636 of 1018 (62.5%)
**** Getting current taxon from PaleoBioDB 637 of 1018 (62.6%)
**** Getting current taxon from PaleoBioDB 638 of 1018 (62.7%)
**** Getting current taxon from PaleoBioDB 639 of 1018 (62.8%)
**** Getting current taxon from PaleoBioDB 640 of 1018 (62.9%)
**** Getting current taxon from PaleoBioDB 641 of 1018 (63%)
**** Getting current taxon from PaleoBioDB 642 of 1018 (63.1%)
**** Getting current taxon from PaleoBioDB 643 of 1018 (63.2%)
**** Getting current taxon from PaleoBioDB 644 of 1018 (63.3%)
**** Getting current taxon from PaleoBioDB 645 of 1018 (63.4%)
**** Getting current taxon from PaleoBioDB 646 of 1018 (63.5%)
**** Getting current taxon from PaleoBioDB 647 of 1018 (63.6%)
**** Getting current taxon from PaleoBioDB 648 of 1018 (63.7%)
**** Getting current taxon from PaleoBioDB 649 of 1018 (63.8%)
**** Getting current taxon from PaleoBioDB 650 of 1018 (63.9%)
**** Getting current taxon from PaleoBioDB 651 of 1018 (63.9%)
**** Getting current taxon from PaleoBioDB 652 of 1018 (64%)
**** Getting current taxon from PaleoBioDB 653 of 1018 (64.1%)
**** Getting current taxon from PaleoBioDB 654 of 1018 (64.2%)
**** Getting current taxon from PaleoBioDB 655 of 1018 (64.3%)
**** Getting current taxon from PaleoBioDB 656 of 1018 (64.4%)
**** Getting current taxon from PaleoBioDB 657 of 1018 (64.5%)
**** Getting current taxon from PaleoBioDB 658 of 1018 (64.6%)
**** Getting current taxon from PaleoBioDB 659 of 1018 (64.7%)
**** Getting current taxon from PaleoBioDB 660 of 1018 (64.8%)
**** Getting current taxon from PaleoBioDB 661 of 1018 (64.9%)
**** Getting current taxon from PaleoBioDB 662 of 1018 (65%)
**** Getting current taxon from PaleoBioDB 663 of 1018 (65.1%)
**** Getting current taxon from PaleoBioDB 664 of 1018 (65.2%)
**** Getting current taxon from PaleoBioDB 665 of 1018 (65.3%)
**** Getting current taxon from PaleoBioDB 666 of 1018 (65.4%)
**** Getting current taxon from PaleoBioDB 667 of 1018 (65.5%)
**** Getting current taxon from PaleoBioDB 668 of 1018 (65.6%)
**** Getting current taxon from PaleoBioDB 669 of 1018 (65.7%)
**** Getting current taxon from PaleoBioDB 670 of 1018 (65.8%)
**** Getting current taxon from PaleoBioDB 671 of 1018 (65.9%)
**** Getting current taxon from PaleoBioDB 672 of 1018 (66%)
**** Getting current taxon from PaleoBioDB 673 of 1018 (66.1%)
**** Getting current taxon from PaleoBioDB 674 of 1018 (66.2%)
**** Getting current taxon from PaleoBioDB 675 of 1018 (66.3%)
**** Getting current taxon from PaleoBioDB 676 of 1018 (66.4%)
**** Getting current taxon from PaleoBioDB 677 of 1018 (66.5%)
**** Getting current taxon from PaleoBioDB 678 of 1018 (66.6%)
**** Getting current taxon from PaleoBioDB 679 of 1018 (66.7%)
**** Getting current taxon from PaleoBioDB 680 of 1018 (66.8%)
**** Getting current taxon from PaleoBioDB 681 of 1018 (66.9%)
**** Getting current taxon from PaleoBioDB 682 of 1018 (67%)
**** Getting current taxon from PaleoBioDB 683 of 1018 (67.1%)
**** Getting current taxon from PaleoBioDB 684 of 1018 (67.2%)
**** Getting current taxon from PaleoBioDB 685 of 1018 (67.3%)
**** Getting current taxon from PaleoBioDB 686 of 1018 (67.4%)
**** Getting current taxon from PaleoBioDB 687 of 1018 (67.5%)
**** Getting current taxon from PaleoBioDB 688 of 1018 (67.6%)
**** Getting current taxon from PaleoBioDB 689 of 1018 (67.7%)
**** Getting current taxon from PaleoBioDB 690 of 1018 (67.8%)
**** Getting current taxon from PaleoBioDB 691 of 1018 (67.9%)
**** Getting current taxon from PaleoBioDB 692 of 1018 (68%)
**** Getting current taxon from PaleoBioDB 693 of 1018 (68.1%)
**** Getting current taxon from PaleoBioDB 694 of 1018 (68.2%)
**** Getting current taxon from PaleoBioDB 695 of 1018 (68.3%)
**** Getting current taxon from PaleoBioDB 696 of 1018 (68.4%)
**** Getting current taxon from PaleoBioDB 697 of 1018 (68.5%)
**** Getting current taxon from PaleoBioDB 698 of 1018 (68.6%)
**** Getting current taxon from PaleoBioDB 699 of 1018 (68.7%)
**** Getting current taxon from PaleoBioDB 700 of 1018 (68.8%)
**** Getting current taxon from PaleoBioDB 701 of 1018 (68.9%)
**** Getting current taxon from PaleoBioDB 702 of 1018 (69%)
**** Getting current taxon from PaleoBioDB 703 of 1018 (69.1%)
**** Getting current taxon from PaleoBioDB 704 of 1018 (69.2%)
**** Getting current taxon from PaleoBioDB 705 of 1018 (69.3%)
**** Getting current taxon from PaleoBioDB 706 of 1018 (69.4%)
**** Getting current taxon from PaleoBioDB 707 of 1018 (69.4%)
**** Getting current taxon from PaleoBioDB 708 of 1018 (69.5%)
**** Getting current taxon from PaleoBioDB 709 of 1018 (69.6%)
**** Getting current taxon from PaleoBioDB 710 of 1018 (69.7%)
**** Getting current taxon from PaleoBioDB 711 of 1018 (69.8%)
**** Getting current taxon from PaleoBioDB 712 of 1018 (69.9%)
**** Getting current taxon from PaleoBioDB 713 of 1018 (70%)
**** Getting current taxon from PaleoBioDB 714 of 1018 (70.1%)
**** Getting current taxon from PaleoBioDB 715 of 1018 (70.2%)
**** Getting current taxon from PaleoBioDB 716 of 1018 (70.3%)
**** Getting current taxon from PaleoBioDB 717 of 1018 (70.4%)
**** Getting current taxon from PaleoBioDB 718 of 1018 (70.5%)
**** Getting current taxon from PaleoBioDB 719 of 1018 (70.6%)
**** Getting current taxon from PaleoBioDB 720 of 1018 (70.7%)
**** Getting current taxon from PaleoBioDB 721 of 1018 (70.8%)
**** Getting current taxon from PaleoBioDB 722 of 1018 (70.9%)
**** Getting current taxon from PaleoBioDB 723 of 1018 (71%)
**** Getting current taxon from PaleoBioDB 724 of 1018 (71.1%)
**** Getting current taxon from PaleoBioDB 725 of 1018 (71.2%)
**** Getting current taxon from PaleoBioDB 726 of 1018 (71.3%)
**** Getting current taxon from PaleoBioDB 727 of 1018 (71.4%)
**** Getting current taxon from PaleoBioDB 728 of 1018 (71.5%)
**** Getting current taxon from PaleoBioDB 729 of 1018 (71.6%)
**** Getting current taxon from PaleoBioDB 730 of 1018 (71.7%)
**** Getting current taxon from PaleoBioDB 731 of 1018 (71.8%)
**** Getting current taxon from PaleoBioDB 732 of 1018 (71.9%)
**** Getting current taxon from PaleoBioDB 733 of 1018 (72%)
**** Getting current taxon from PaleoBioDB 734 of 1018 (72.1%)
**** Getting current taxon from PaleoBioDB 735 of 1018 (72.2%)
**** Getting current taxon from PaleoBioDB 736 of 1018 (72.3%)
**** Getting current taxon from PaleoBioDB 737 of 1018 (72.4%)
**** Getting current taxon from PaleoBioDB 738 of 1018 (72.5%)
**** Getting current taxon from PaleoBioDB 739 of 1018 (72.6%)
**** Getting current taxon from PaleoBioDB 740 of 1018 (72.7%)
**** Getting current taxon from PaleoBioDB 741 of 1018 (72.8%)
**** Getting current taxon from PaleoBioDB 742 of 1018 (72.9%)
**** Getting current taxon from PaleoBioDB 743 of 1018 (73%)
**** Getting current taxon from PaleoBioDB 744 of 1018 (73.1%)
**** Getting current taxon from PaleoBioDB 745 of 1018 (73.2%)
**** Getting current taxon from PaleoBioDB 746 of 1018 (73.3%)
**** Getting current taxon from PaleoBioDB 747 of 1018 (73.4%)
**** Getting current taxon from PaleoBioDB 748 of 1018 (73.5%)
**** Getting current taxon from PaleoBioDB 749 of 1018 (73.6%)
**** Getting current taxon from PaleoBioDB 750 of 1018 (73.7%)
**** Getting current taxon from PaleoBioDB 751 of 1018 (73.8%)
**** Getting current taxon from PaleoBioDB 752 of 1018 (73.9%)
**** Getting current taxon from PaleoBioDB 753 of 1018 (74%)
**** Getting current taxon from PaleoBioDB 754 of 1018 (74.1%)
**** Getting current taxon from PaleoBioDB 755 of 1018 (74.2%)
**** Getting current taxon from PaleoBioDB 756 of 1018 (74.3%)
**** Getting current taxon from PaleoBioDB 757 of 1018 (74.4%)
**** Getting current taxon from PaleoBioDB 758 of 1018 (74.5%)
**** Getting current taxon from PaleoBioDB 759 of 1018 (74.6%)
**** Getting current taxon from PaleoBioDB 760 of 1018 (74.7%)
**** Getting current taxon from PaleoBioDB 761 of 1018 (74.8%)
**** Getting current taxon from PaleoBioDB 762 of 1018 (74.9%)
**** Getting current taxon from PaleoBioDB 763 of 1018 (75%)
**** Getting current taxon from PaleoBioDB 764 of 1018 (75%)
**** Getting current taxon from PaleoBioDB 765 of 1018 (75.1%)
**** Getting current taxon from PaleoBioDB 766 of 1018 (75.2%)
**** Getting current taxon from PaleoBioDB 767 of 1018 (75.3%)
**** Getting current taxon from PaleoBioDB 768 of 1018 (75.4%)
**** Getting current taxon from PaleoBioDB 769 of 1018 (75.5%)
**** Getting current taxon from PaleoBioDB 770 of 1018 (75.6%)
**** Getting current taxon from PaleoBioDB 771 of 1018 (75.7%)
**** Getting current taxon from PaleoBioDB 772 of 1018 (75.8%)
**** Getting current taxon from PaleoBioDB 773 of 1018 (75.9%)
**** Getting current taxon from PaleoBioDB 774 of 1018 (76%)
**** Getting current taxon from PaleoBioDB 775 of 1018 (76.1%)
**** Getting current taxon from PaleoBioDB 776 of 1018 (76.2%)
**** Getting current taxon from PaleoBioDB 777 of 1018 (76.3%)
**** Getting current taxon from PaleoBioDB 778 of 1018 (76.4%)
**** Getting current taxon from PaleoBioDB 779 of 1018 (76.5%)
**** Getting current taxon from PaleoBioDB 780 of 1018 (76.6%)
**** Getting current taxon from PaleoBioDB 781 of 1018 (76.7%)
**** Getting current taxon from PaleoBioDB 782 of 1018 (76.8%)
**** Getting current taxon from PaleoBioDB 783 of 1018 (76.9%)
**** Getting current taxon from PaleoBioDB 784 of 1018 (77%)
**** Getting current taxon from PaleoBioDB 785 of 1018 (77.1%)
**** Getting current taxon from PaleoBioDB 786 of 1018 (77.2%)
**** Getting current taxon from PaleoBioDB 787 of 1018 (77.3%)
**** Getting current taxon from PaleoBioDB 788 of 1018 (77.4%)
**** Getting current taxon from PaleoBioDB 789 of 1018 (77.5%)
**** Getting current taxon from PaleoBioDB 790 of 1018 (77.6%)
**** Getting current taxon from PaleoBioDB 791 of 1018 (77.7%)
**** Getting current taxon from PaleoBioDB 792 of 1018 (77.8%)
**** Getting current taxon from PaleoBioDB 793 of 1018 (77.9%)
**** Getting current taxon from PaleoBioDB 794 of 1018 (78%)
**** Getting current taxon from PaleoBioDB 795 of 1018 (78.1%)
**** Getting current taxon from PaleoBioDB 796 of 1018 (78.2%)
**** Getting current taxon from PaleoBioDB 797 of 1018 (78.3%)
**** Getting current taxon from PaleoBioDB 798 of 1018 (78.4%)
**** Getting current taxon from PaleoBioDB 799 of 1018 (78.5%)
**** Getting current taxon from PaleoBioDB 800 of 1018 (78.6%)
**** Getting current taxon from PaleoBioDB 801 of 1018 (78.7%)
**** Getting current taxon from PaleoBioDB 802 of 1018 (78.8%)
**** Getting current taxon from PaleoBioDB 803 of 1018 (78.9%)
**** Getting current taxon from PaleoBioDB 804 of 1018 (79%)
**** Getting current taxon from PaleoBioDB 805 of 1018 (79.1%)
**** Getting current taxon from PaleoBioDB 806 of 1018 (79.2%)
**** Getting current taxon from PaleoBioDB 807 of 1018 (79.3%)
**** Getting current taxon from PaleoBioDB 808 of 1018 (79.4%)
**** Getting current taxon from PaleoBioDB 809 of 1018 (79.5%)
**** Getting current taxon from PaleoBioDB 810 of 1018 (79.6%)
**** Getting current taxon from PaleoBioDB 811 of 1018 (79.7%)
**** Getting current taxon from PaleoBioDB 812 of 1018 (79.8%)
**** Getting current taxon from PaleoBioDB 813 of 1018 (79.9%)
**** Getting current taxon from PaleoBioDB 814 of 1018 (80%)
**** Getting current taxon from PaleoBioDB 815 of 1018 (80.1%)
**** Getting current taxon from PaleoBioDB 816 of 1018 (80.2%)
**** Getting current taxon from PaleoBioDB 817 of 1018 (80.3%)
**** Getting current taxon from PaleoBioDB 818 of 1018 (80.4%)
**** Getting current taxon from PaleoBioDB 819 of 1018 (80.5%)
**** Getting current taxon from PaleoBioDB 820 of 1018 (80.6%)
**** Getting current taxon from PaleoBioDB 821 of 1018 (80.6%)
**** Getting current taxon from PaleoBioDB 822 of 1018 (80.7%)
**** Getting current taxon from PaleoBioDB 823 of 1018 (80.8%)
**** Getting current taxon from PaleoBioDB 824 of 1018 (80.9%)
**** Getting current taxon from PaleoBioDB 825 of 1018 (81%)
**** Getting current taxon from PaleoBioDB 826 of 1018 (81.1%)
**** Getting current taxon from PaleoBioDB 827 of 1018 (81.2%)
**** Getting current taxon from PaleoBioDB 828 of 1018 (81.3%)
**** Getting current taxon from PaleoBioDB 829 of 1018 (81.4%)
**** Getting current taxon from PaleoBioDB 830 of 1018 (81.5%)
**** Getting current taxon from PaleoBioDB 831 of 1018 (81.6%)
**** Getting current taxon from PaleoBioDB 832 of 1018 (81.7%)
**** Getting current taxon from PaleoBioDB 833 of 1018 (81.8%)
**** Getting current taxon from PaleoBioDB 834 of 1018 (81.9%)
**** Getting current taxon from PaleoBioDB 835 of 1018 (82%)
**** Getting current taxon from PaleoBioDB 836 of 1018 (82.1%)
**** Getting current taxon from PaleoBioDB 837 of 1018 (82.2%)
**** Getting current taxon from PaleoBioDB 838 of 1018 (82.3%)
**** Getting current taxon from PaleoBioDB 839 of 1018 (82.4%)
**** Getting current taxon from PaleoBioDB 840 of 1018 (82.5%)
**** Getting current taxon from PaleoBioDB 841 of 1018 (82.6%)
**** Getting current taxon from PaleoBioDB 842 of 1018 (82.7%)
**** Getting current taxon from PaleoBioDB 843 of 1018 (82.8%)
**** Getting current taxon from PaleoBioDB 844 of 1018 (82.9%)
**** Getting current taxon from PaleoBioDB 845 of 1018 (83%)
**** Getting current taxon from PaleoBioDB 846 of 1018 (83.1%)
**** Getting current taxon from PaleoBioDB 847 of 1018 (83.2%)
**** Getting current taxon from PaleoBioDB 848 of 1018 (83.3%)
**** Getting current taxon from PaleoBioDB 849 of 1018 (83.4%)
**** Getting current taxon from PaleoBioDB 850 of 1018 (83.5%)
**** Getting current taxon from PaleoBioDB 851 of 1018 (83.6%)
**** Getting current taxon from PaleoBioDB 852 of 1018 (83.7%)
**** Getting current taxon from PaleoBioDB 853 of 1018 (83.8%)
**** Getting current taxon from PaleoBioDB 854 of 1018 (83.9%)
**** Getting current taxon from PaleoBioDB 855 of 1018 (84%)
**** Getting current taxon from PaleoBioDB 856 of 1018 (84.1%)
**** Getting current taxon from PaleoBioDB 857 of 1018 (84.2%)
**** Getting current taxon from PaleoBioDB 858 of 1018 (84.3%)
**** Getting current taxon from PaleoBioDB 859 of 1018 (84.4%)
**** Getting current taxon from PaleoBioDB 860 of 1018 (84.5%)
**** Getting current taxon from PaleoBioDB 861 of 1018 (84.6%)
**** Getting current taxon from PaleoBioDB 862 of 1018 (84.7%)
**** Getting current taxon from PaleoBioDB 863 of 1018 (84.8%)
**** Getting current taxon from PaleoBioDB 864 of 1018 (84.9%)
**** Getting current taxon from PaleoBioDB 865 of 1018 (85%)
**** Getting current taxon from PaleoBioDB 866 of 1018 (85.1%)
**** Getting current taxon from PaleoBioDB 867 of 1018 (85.2%)
**** Getting current taxon from PaleoBioDB 868 of 1018 (85.3%)
**** Getting current taxon from PaleoBioDB 869 of 1018 (85.4%)
**** Getting current taxon from PaleoBioDB 870 of 1018 (85.5%)
**** Getting current taxon from PaleoBioDB 871 of 1018 (85.6%)
**** Getting current taxon from PaleoBioDB 872 of 1018 (85.7%)
**** Getting current taxon from PaleoBioDB 873 of 1018 (85.8%)
**** Getting current taxon from PaleoBioDB 874 of 1018 (85.9%)
**** Getting current taxon from PaleoBioDB 875 of 1018 (86%)
**** Getting current taxon from PaleoBioDB 876 of 1018 (86.1%)
**** Getting current taxon from PaleoBioDB 877 of 1018 (86.1%)
**** Getting current taxon from PaleoBioDB 878 of 1018 (86.2%)
**** Getting current taxon from PaleoBioDB 879 of 1018 (86.3%)
**** Getting current taxon from PaleoBioDB 880 of 1018 (86.4%)
**** Getting current taxon from PaleoBioDB 881 of 1018 (86.5%)
**** Getting current taxon from PaleoBioDB 882 of 1018 (86.6%)
**** Getting current taxon from PaleoBioDB 883 of 1018 (86.7%)
**** Getting current taxon from PaleoBioDB 884 of 1018 (86.8%)
**** Getting current taxon from PaleoBioDB 885 of 1018 (86.9%)
**** Getting current taxon from PaleoBioDB 886 of 1018 (87%)
**** Getting current taxon from PaleoBioDB 887 of 1018 (87.1%)
**** Getting current taxon from PaleoBioDB 888 of 1018 (87.2%)
**** Getting current taxon from PaleoBioDB 889 of 1018 (87.3%)
**** Getting current taxon from PaleoBioDB 890 of 1018 (87.4%)
**** Getting current taxon from PaleoBioDB 891 of 1018 (87.5%)
**** Getting current taxon from PaleoBioDB 892 of 1018 (87.6%)
**** Getting current taxon from PaleoBioDB 893 of 1018 (87.7%)
**** Getting current taxon from PaleoBioDB 894 of 1018 (87.8%)
**** Getting current taxon from PaleoBioDB 895 of 1018 (87.9%)
**** Getting current taxon from PaleoBioDB 896 of 1018 (88%)
**** Getting current taxon from PaleoBioDB 897 of 1018 (88.1%)
**** Getting current taxon from PaleoBioDB 898 of 1018 (88.2%)
**** Getting current taxon from PaleoBioDB 899 of 1018 (88.3%)
**** Getting current taxon from PaleoBioDB 900 of 1018 (88.4%)
**** Getting current taxon from PaleoBioDB 901 of 1018 (88.5%)
**** Getting current taxon from PaleoBioDB 902 of 1018 (88.6%)
**** Getting current taxon from PaleoBioDB 903 of 1018 (88.7%)
**** Getting current taxon from PaleoBioDB 904 of 1018 (88.8%)
**** Getting current taxon from PaleoBioDB 905 of 1018 (88.9%)
**** Getting current taxon from PaleoBioDB 906 of 1018 (89%)
**** Getting current taxon from PaleoBioDB 907 of 1018 (89.1%)
**** Getting current taxon from PaleoBioDB 908 of 1018 (89.2%)
**** Getting current taxon from PaleoBioDB 909 of 1018 (89.3%)
**** Getting current taxon from PaleoBioDB 910 of 1018 (89.4%)
**** Getting current taxon from PaleoBioDB 911 of 1018 (89.5%)
**** Getting current taxon from PaleoBioDB 912 of 1018 (89.6%)
**** Getting current taxon from PaleoBioDB 913 of 1018 (89.7%)
**** Getting current taxon from PaleoBioDB 914 of 1018 (89.8%)
**** Getting current taxon from PaleoBioDB 915 of 1018 (89.9%)
**** Getting current taxon from PaleoBioDB 916 of 1018 (90%)
**** Getting current taxon from PaleoBioDB 917 of 1018 (90.1%)
**** Getting current taxon from PaleoBioDB 918 of 1018 (90.2%)
**** Getting current taxon from PaleoBioDB 919 of 1018 (90.3%)
**** Getting current taxon from PaleoBioDB 920 of 1018 (90.4%)
**** Getting current taxon from PaleoBioDB 921 of 1018 (90.5%)
**** Getting current taxon from PaleoBioDB 922 of 1018 (90.6%)
**** Getting current taxon from PaleoBioDB 923 of 1018 (90.7%)
**** Getting current taxon from PaleoBioDB 924 of 1018 (90.8%)
**** Getting current taxon from PaleoBioDB 925 of 1018 (90.9%)
**** Getting current taxon from PaleoBioDB 926 of 1018 (91%)
**** Getting current taxon from PaleoBioDB 927 of 1018 (91.1%)
**** Getting current taxon from PaleoBioDB 928 of 1018 (91.2%)
**** Getting current taxon from PaleoBioDB 929 of 1018 (91.3%)
**** Getting current taxon from PaleoBioDB 930 of 1018 (91.4%)
**** Getting current taxon from PaleoBioDB 931 of 1018 (91.5%)
**** Getting current taxon from PaleoBioDB 932 of 1018 (91.6%)
**** Getting current taxon from PaleoBioDB 933 of 1018 (91.7%)
**** Getting current taxon from PaleoBioDB 934 of 1018 (91.7%)
**** Getting current taxon from PaleoBioDB 935 of 1018 (91.8%)
**** Getting current taxon from PaleoBioDB 936 of 1018 (91.9%)
**** Getting current taxon from PaleoBioDB 937 of 1018 (92%)
**** Getting current taxon from PaleoBioDB 938 of 1018 (92.1%)
**** Getting current taxon from PaleoBioDB 939 of 1018 (92.2%)
**** Getting current taxon from PaleoBioDB 940 of 1018 (92.3%)
**** Getting current taxon from PaleoBioDB 941 of 1018 (92.4%)
**** Getting current taxon from PaleoBioDB 942 of 1018 (92.5%)
**** Getting current taxon from PaleoBioDB 943 of 1018 (92.6%)
**** Getting current taxon from PaleoBioDB 944 of 1018 (92.7%)
**** Getting current taxon from PaleoBioDB 945 of 1018 (92.8%)
**** Getting current taxon from PaleoBioDB 946 of 1018 (92.9%)
**** Getting current taxon from PaleoBioDB 947 of 1018 (93%)
**** Getting current taxon from PaleoBioDB 948 of 1018 (93.1%)
**** Getting current taxon from PaleoBioDB 949 of 1018 (93.2%)
**** Getting current taxon from PaleoBioDB 950 of 1018 (93.3%)
**** Getting current taxon from PaleoBioDB 951 of 1018 (93.4%)
**** Getting current taxon from PaleoBioDB 952 of 1018 (93.5%)
**** Getting current taxon from PaleoBioDB 953 of 1018 (93.6%)
**** Getting current taxon from PaleoBioDB 954 of 1018 (93.7%)
**** Getting current taxon from PaleoBioDB 955 of 1018 (93.8%)
**** Getting current taxon from PaleoBioDB 956 of 1018 (93.9%)
**** Getting current taxon from PaleoBioDB 957 of 1018 (94%)
**** Getting current taxon from PaleoBioDB 958 of 1018 (94.1%)
**** Getting current taxon from PaleoBioDB 959 of 1018 (94.2%)
**** Getting current taxon from PaleoBioDB 960 of 1018 (94.3%)
**** Getting current taxon from PaleoBioDB 961 of 1018 (94.4%)
**** Getting current taxon from PaleoBioDB 962 of 1018 (94.5%)
**** Getting current taxon from PaleoBioDB 963 of 1018 (94.6%)
**** Getting current taxon from PaleoBioDB 964 of 1018 (94.7%)
**** Getting current taxon from PaleoBioDB 965 of 1018 (94.8%)
**** Getting current taxon from PaleoBioDB 966 of 1018 (94.9%)
**** Getting current taxon from PaleoBioDB 967 of 1018 (95%)
**** Getting current taxon from PaleoBioDB 968 of 1018 (95.1%)
**** Getting current taxon from PaleoBioDB 969 of 1018 (95.2%)
**** Getting current taxon from PaleoBioDB 970 of 1018 (95.3%)
**** Getting current taxon from PaleoBioDB 971 of 1018 (95.4%)
**** Getting current taxon from PaleoBioDB 972 of 1018 (95.5%)
**** Getting current taxon from PaleoBioDB 973 of 1018 (95.6%)
**** Getting current taxon from PaleoBioDB 974 of 1018 (95.7%)
**** Getting current taxon from PaleoBioDB 975 of 1018 (95.8%)
**** Getting current taxon from PaleoBioDB 976 of 1018 (95.9%)
**** Getting current taxon from PaleoBioDB 977 of 1018 (96%)
**** Getting current taxon from PaleoBioDB 978 of 1018 (96.1%)
**** Getting current taxon from PaleoBioDB 979 of 1018 (96.2%)
**** Getting current taxon from PaleoBioDB 980 of 1018 (96.3%)
**** Getting current taxon from PaleoBioDB 981 of 1018 (96.4%)
**** Getting current taxon from PaleoBioDB 982 of 1018 (96.5%)
**** Getting current taxon from PaleoBioDB 983 of 1018 (96.6%)
**** Getting current taxon from PaleoBioDB 984 of 1018 (96.7%)
**** Getting current taxon from PaleoBioDB 985 of 1018 (96.8%)
**** Getting current taxon from PaleoBioDB 986 of 1018 (96.9%)
**** Getting current taxon from PaleoBioDB 987 of 1018 (97%)
**** Getting current taxon from PaleoBioDB 988 of 1018 (97.1%)
**** Getting current taxon from PaleoBioDB 989 of 1018 (97.2%)
**** Getting current taxon from PaleoBioDB 990 of 1018 (97.2%)
**** Getting current taxon from PaleoBioDB 991 of 1018 (97.3%)
**** Getting current taxon from PaleoBioDB 992 of 1018 (97.4%)
**** Getting current taxon from PaleoBioDB 993 of 1018 (97.5%)
**** Getting current taxon from PaleoBioDB 994 of 1018 (97.6%)
**** Getting current taxon from PaleoBioDB 995 of 1018 (97.7%)
**** Getting current taxon from PaleoBioDB 996 of 1018 (97.8%)
**** Getting current taxon from PaleoBioDB 997 of 1018 (97.9%)
**** Getting current taxon from PaleoBioDB 998 of 1018 (98%)
**** Getting current taxon from PaleoBioDB 999 of 1018 (98.1%)
**** Getting current taxon from PaleoBioDB 1000 of 1018 (98.2%)
**** Getting current taxon from PaleoBioDB 1001 of 1018 (98.3%)
**** Getting current taxon from PaleoBioDB 1002 of 1018 (98.4%)
**** Getting current taxon from PaleoBioDB 1003 of 1018 (98.5%)
**** Getting current taxon from PaleoBioDB 1004 of 1018 (98.6%)
**** Getting current taxon from PaleoBioDB 1005 of 1018 (98.7%)
**** Getting current taxon from PaleoBioDB 1006 of 1018 (98.8%)
**** Getting current taxon from PaleoBioDB 1007 of 1018 (98.9%)
**** Getting current taxon from PaleoBioDB 1008 of 1018 (99%)
**** Getting current taxon from PaleoBioDB 1009 of 1018 (99.1%)
**** Getting current taxon from PaleoBioDB 1010 of 1018 (99.2%)
**** Getting current taxon from PaleoBioDB 1011 of 1018 (99.3%)
**** Getting current taxon from PaleoBioDB 1012 of 1018 (99.4%)
**** Getting current taxon from PaleoBioDB 1013 of 1018 (99.5%)
**** Getting current taxon from PaleoBioDB 1014 of 1018 (99.6%)
**** Getting current taxon from PaleoBioDB 1015 of 1018 (99.7%)
**** Getting current taxon from PaleoBioDB 1016 of 1018 (99.8%)
**** Getting current taxon from PaleoBioDB 1017 of 1018 (99.9%)
**** Getting current taxon from PaleoBioDB 1018 of 1018 (100%)
[1] ""
## [1] "Building body mass estimates..."
####################################################################################################################################
#### reduces matrix to just the focal order(s)
####################################################################################################################################
archaic.ung <- read.csv("/Users/emdoughty/Dropbox/Code/ArchaicUngulate_UploadFile_2021_4_29.csv")
archaic.Mat.tot <- getMeasureMatCondylarths(data.raw = archaic.ung, occs = occs,
col.order = colnames(measure.mat),
all.bm = FALSE,
regression = "ArchaicNonselenodonts")
## [1] "Total Coverage: 106/179"
## [1] "Arctocyonidae: 44/71"
## [1] "Chriacidae: 2/4"
## [1] "Hyopsodontidae: 24/42"
## [1] "Periptychidae: 14/39"
## [1] "Phenacodontidae: 22/23"
## [1] "Building body mass estimates..."
#test <- jon_archicBodyMassEstim()
#test.bm <- 10^test$bodyMass
#test.bm <- test.bm/1000
#test.bm <- log10(test.bm)
measure.mat <- rbind(measure.mat, archaic.Mat.tot)
focal.order <- c("Artiodactyla", "Perissodactyla")
focal.family <- unique(occs[occs$order %in% focal.order,]$family)
add.family <- c("Arctocyonidae", "Chriacidae", "Hyopsodontidae","Periptychidae","Phenacodontidae")
focal.family <- c(as.character(focal.family), add.family)
focal.family <- focal.family[!focal.family %in% ""]
focal.family <- focal.family[order(focal.family)]
bigList <- unique(occs[((occs$accepted_rank =="species" | occs$accepted_rank =="genus") & (occs$order %in% focal.order | occs$family %in% add.family)), c("order","family", "genus", "accepted_name")])
#bigList.cond <- unique(occs[((occs$accepted_rank =="species" | occs$accepted_rank =="genus") & occs$family %in% add.family), c("order","family", "genus", "accepted_name")])
# bigList <- rbind(bigList,bigList.cond)
bigList <- bigList[order(bigList$order, bigList$family, bigList$genus, bigList$accepted_name),]
shortFam <- sort(unique(bigList$family[bigList$family %in% focal.family]))
bigList$accepted_name <- gsub(pattern = "[[:space:]]", replacement = "_", x = bigList$accepted_name)
measure.mat <- measure.mat[measure.mat$taxon %in% bigList$accepted_name[bigList$family %in% shortFam], ]
#this.rank <- "genus"
if (this.rank=="genus") measure.mat<- makeOneGenusMatFromSpecimenMat(measure.mat)
pred.data <- read.csv("~/Dropbox/Proposal/predator_data_final.csv")
colnames(pred.data) <- c("family", "taxon", "max_ma","min_ma", "m1L", "rbl", "bodyMass", "Citation")
pred.data$taxon <- gsub(pattern = "[[:space:]]", replacement = "_", x = pred.data$taxon)
rownames(pred.data) <- pred.data$taxon
pred.data[,c("bodyMass")] <- log10(pred.data[,c("bodyMass")])
pred.data <- pred.data[is.finite(pred.data$bodyMass),]
focal.orderPred <- c("Carnivora", "Creodonta","Hyaenodonta")
#occsPred <- occs[occs$order %in% focal.orderPred,]
focal.familyPred <- unique(occs[occs$order %in% focal.orderPred,]$family)
focal.familyPred <- c(as.character(focal.familyPred), "Viverravidae")
focal.familyPred <- focal.familyPred[!focal.familyPred%in% ""]
focal.familyPred <- focal.familyPred[order(focal.familyPred)]
bigListPred <- unique(occs[((occs$accepted_rank =="species" | occs$accepted_rank =="genus") & occs$family %in% focal.familyPred), c("order","family", "genus", "accepted_name")])
bigListPred <- bigListPred[order(bigListPred$order, bigListPred$family, bigListPred$genus, bigListPred$accepted_name),]
# bigList[order(bigList$family, bigList$accepted_name),]
bigListPred$accepted_name <- gsub(pattern = "[[:space:]]", replacement = "_", x = bigListPred$accepted_name)
bigListPred <- bigListPred[bigListPred$accepted_name %in% pred.data$taxon,]
shortFamPred <- sort(unique(bigListPred$family[bigListPred$family %in% focal.familyPred]))
#pred.data <- getDateTaxa(measure.mat = pred.data, occs=occsPred, this.rank = "species")
pred.data <- pred.data[complete.cases(pred.data),]
#this.rank <- "genus"
if (this.rank=="genus") {
get.genus <- strsplit(pred.data$taxon, "_")
pred.data$genus <- sapply( get.genus, "[", 1 )
pred.data <- makeOneGenusMatFromSpecimenMat(pred.data)
}
if(is.null(repIntLoad))
{
do.parallel <- TRUE
if (do.parallel) require(parallel)
reps <- 10000
do.subsample <- TRUE
quota <- 0.4
do.disparity <- FALSE
bootstrapSpecimens <- FALSE
bootstrapSpecies <- FALSE
bootstrapSpeciesWithinIntervals <- FALSE
plotHist <- FALSE
do.heuristic <- TRUE
extra.intvs <- 0
do.rangethrough <- TRUE
save.files <- TRUE
if (bootstrapSpecies) holderMat <- measure.mat
if (plotHist) {
quartz("Guild Histograms")
par(mfrow=c((nrow(intervals)), 3), mar=c(0,0,0.75,0), cex.axis=0.5, cex.main=0.75)
}
repIntOccs <- list()
################################################################################################################################################
#### get species within intervals
################################################################################################################################################
for (rep in seq_len(reps)) {
cat("Beginning Rep", rep, "of", reps, "...\r")
##################################################We need to update this sbootstrap section
if (bootstrapSpecimens) {
measure.mat <- specimenMat[sample.int(nrow(specimenMat), size=nrow(specimenMat), replace=TRUE),]
measure.mat <- aggregate(measure.mat, by=list(taxon=specimenMat$taxon), mean, na.rm=TRUE)
# measure.mat <- measure.mat[,apply(!sapply(measure.mat, is.na), 2, any)]
rownames(measure.mat) <- measure.mat$taxon
measure.mat[sapply(measure.mat, is.nan)] <- NA
# measure.mat<-cbind(measure.mat, cbind(FO=vector(length=nrow(measure.mat), mode="numeric"), LO=vector(length=nrow(measure.mat), mode="numeric")))
measure.mat[,"reg"] <- as.character(famList$reg[match(measure.mat$taxon,famList$taxon)])
measure.mat[,"bodyMass"] <- makeBodyMasses(measure.mat, regList, best.only=TRUE)
# measure.mat[,"PC2"] <- pcVec[match(measure.mat$taxon, names(pcVec))]
# measure.mat[,"PC3"] <- pcaLo$x[match(measure.mat$taxon, rownames(pcaLo$x)),3]
}
if (bootstrapSpecies) measure.mat <- holderMat[sample.int(n=nrow(measure.mat), size=nrow(measure.mat), replace=TRUE),]
col.dates <- getCollectionAgesFromOccs(occs=occs[, c("collection_no", "max_ma", "min_ma")], random=TRUE)
occDates <- col.dates$collection_age[match(occs$collection_no, col.dates$collection_no)]
intOccs <- apply(intervals, 1, function(thisIntv) occs$occurrence_no[occDates > thisIntv[1] & occDates <= thisIntv[2]]) # greater than ageTop, less than or equal to ageBase
# intTaxa <- sapply(intOccs, function(x) unique(occs$accepted_name[occs$occurrence_no %in% x]))
# x <- intOccs
# intSp <- sapply(intOccs, function(x) match(sort(unique(gsub(pattern = "[[:space:]]", replacement = "_", x = occs$accepted_name[occs$accepted_rank == "species" & occs$occurrence_no %in% x]))), measure.mat$taxon))
# intSp <- sapply(intOccs, function(x) match(sort(unique(occs$accepted_name[occs$accepted_rank %in% c("genus", "species") & occs$occurrence_no %in% x]))), measure.mat$taxon))
# intSp <- sapply(intOccs, function(x) sort(unique(as.character(occs$accepted_name[occs$occurrence_no %in% x]))))
#which(occs$occurrence_no %in% x == TRUE) # none are being returned as TRUE
if (do.subsample) {
nOccs <- sapply(intOccs, length)
# nTaxa <- sapply(intSp, length) ### if you want to set the quota no lower than the maximum number of SIB taxa; intSp is required for this to work, so has to be done above
nTaxa <- 0 ### set to zero to simply set the quota to the minimum number of occurrences
quota <- max(c(max(nTaxa), min(nOccs))) ### quota is either the maximum number of observed taxa, or the minimum number of occurrences
cat("Subsampling quota set to", quota, "occurrences")
intOccs <- lapply(X=intOccs, FUN=sample, size=quota)
}
repIntOccs[[rep]] <- intOccs
}
repIntTaxa <- getRepIntTaxaFromRepIntOccs(repIntOccs, this.rank=this.rank, do.rangethrough=do.rangethrough)
}
if(!is.null(repIntLoad)) load(repIntLoad)
#need to refill nominal groupings or remove them
rem.col <- c("family","genus","reg.vec")
measure.mat <- measure.mat[,!colnames(measure.mat) %in% rem.col]
countCube_herb <- sapply(repIntTaxa, function(this.rep) {
sapply(this.rep, function(this.intv, this.rep) {
hist(measure.mat[,"bodyMass"][match(this.intv, measure.mat$taxon)],
breaks= bmBreaks_herb, plot=FALSE)$counts
}, this.rep=this.rep)
}, simplify = "array")
#countCube <- countCube[,,1]
sizecateg <- c("rabbit (<5 kg)",
"water deer (5-25 kg)",#"dog (5-25 kg)", could also do beaver for 5-25kg
"antelope (25-150kg)",
"horse (150-500 kg)",
"rhino (500-1000 kg)")
dimnames(countCube_herb) <- list(sizecateg, rownames(intervals), NULL)
rem.col <- c("family","genus","reg.vec","diet")
pred.data <- pred.data[,!colnames(pred.data) %in% rem.col]
countCube_pred <- sapply(repIntTaxa, function(this.rep) {
sapply(this.rep, function(this.intv, this.rep) {
hist(pred.data[,"bodyMass"][match(this.intv, pred.data$taxon)],
breaks= bmBreaks_pred, plot=FALSE)$counts
}, this.rep=this.rep)
}, simplify = "array")
#countCube <- countCube[,,1]
sizecateg <- c("<1kg",
"1kg to 7kg",
"7kg to 21kg",
"21kg to 100kg",
">100kg")
dimnames(countCube_pred) <- list(sizecateg, rownames(intervals), NULL)
Functional Diversity Through Time
#quartz(width=6.89)
#par(mfrow=c(2,1), mar=c(4,4,1.6,4), mgp=c(2, 1,0)) #, height = 2.15, width = 8.21)
prop_herb <- t(apply(countCube_herb, c(1,2), mean, na.rm=TRUE))
colnames(prop_herb)[colnames(prop_herb)==""] <- "indeterminate"
# dimnames(prop) <- list(rownames(intervals), shortFam)
plotStackedRichness(this.box=prop_herb, intervals=intervals, reorder.taxa = FALSE, do.log=FALSE, overlay.labels=FALSE, numbers.only=FALSE, legend=FALSE, xlim = c(65, #xlim=c(max(intervals, na.rm=TRUE)
min(intervals, na.rm=TRUE)))

#quartz(width=6.89)
#par(mfrow=c(2,1), mar=c(4,4,1.6,4), mgp=c(2, 1,0)) #, height = 2.15, width = 8.21)
prop_pred <- t(apply(countCube_pred, c(1,2), mean, na.rm=TRUE))
colnames(prop_pred)[colnames(prop_pred)==""] <- "indeterminate"
# dimnames(prop) <- list(rownames(intervals), shortFam)
plotStackedRichness(this.box=prop_pred, intervals=intervals, reorder.taxa = FALSE, do.log=FALSE, overlay.labels=FALSE, numbers.only=FALSE, legend=FALSE, xlim = c(65, min(intervals, na.rm=TRUE)), ylim = c(0, 35))

Pred/Prey Richness Plots
rowSums(prop_pred)
## To Ti Cf Wa0/5 Wa6 Wa7 Br0/1 Br2 Br3
## 2.9541 5.9756 8.9933 18.0960 22.1452 22.2093 19.6765 15.0769 13.7280
## Ui1 Ui2/3 Du Ch1 Ch2/3 Ch4 Or Wh Ar1
## 10.9703 4.6282 3.2651 8.4028 9.6273 8.6869 9.3150 15.2728 18.9378
## Ar2 Ar3 Ar4 He1 He2 Ba1 Ba2 Cl1 Cl2
## 22.5535 25.4091 26.3289 29.7488 29.6436 29.2269 28.9782 25.0727 25.4397
## Cl3 Hh1 Hh2 Hh3 Hh4 E BL L Bl E Ir M Ir
## 27.9702 29.3846 28.4920 25.6331 20.0615 15.0974 18.4366 19.1090 20.5972
## Ra Ho
## 19.8623 13.6019
rowSums(prop_herb)
## To Ti Cf Wa0/5 Wa6 Wa7 Br0/1 Br2 Br3
## 36.4003 24.6719 12.3120 27.5041 33.3170 34.4685 35.8260 28.8383 23.2865
## Ui1 Ui2/3 Du Ch1 Ch2/3 Ch4 Or Wh Ar1
## 28.5700 38.0963 36.0787 48.7119 52.3849 47.1755 30.7687 36.3608 33.6831
## Ar2 Ar3 Ar4 He1 He2 Ba1 Ba2 Cl1 Cl2
## 50.8329 70.9480 78.3408 88.1824 88.6187 83.2290 86.5178 82.7141 82.4608
## Cl3 Hh1 Hh2 Hh3 Hh4 E BL L Bl E Ir M Ir
## 83.2413 81.9893 75.3335 63.4528 44.2279 14.2958 18.7618 20.8441 20.9001
## Ra Ho
## 17.3769 6.6404
pred_prey_ratio <- rowSums(prop_pred)/rowSums(prop_herb)
continental_richness <- rowSums(prop_pred) + rowSums(prop_herb)
plot(continental_richness, pred_prey_ratio, cex = 0.25, xlab = "Continental Richness", ylab= "Predator Richness/Prey Richness")
text(continental_richness, pred_prey_ratio, labels = names(pred_prey_ratio), cex = 0.75)

Correlation Matrices
“raw” correlations
#cor.p <- cor.mtest(cbind(xval, yval), method = "pearson")
ungulates <- prop_herb
predators <- prop_pred
all.val <- cbind(predators, ungulates)
corr.results.both <- cor(predators, ungulates, method = "spearman")
cor.p <- cor.mtest(all.val)$p
cor.p.culled <- cor.p[,colnames(cor.p) %in% colnames(ungulates)]
cor.p.culled <- cor.p.culled[rownames(cor.p.culled) %in% colnames(predators),]
corrplot::corrplot(corr.results.both, mar = c(1,1,1,1), p.mat = cor.p.culled, #insig = "blank",
cl.align.text = 'l', addCoef.col = 'black')
mtext("Large Herbivore", side = 3, line = -3, cex = 1.5)
mtext("Predator", side = 2, adj = 0.6, line = 0, cex = 1.5)

First Differences Correlation
pred.prey.DivFirstDiff <- getDiversity1stDiff(data.mat = t(prop_pred), intervals = intervals)
UngualteBMGroupDiv_FirstDiff <- getDiversity1stDiff(data.mat = t(prop_herb), intervals = intervals)
#UngualteBMGroupDiv_FirstDiff
#pred.prey.DivFirstDiff
#should make list of plots of each catagpry through time to make sure data is stationary
ungulates <- t(as.matrix(UngualteBMGroupDiv_FirstDiff))
predators <- t(as.matrix(pred.prey.DivFirstDiff))
all.val <- cbind(predators, ungulates)
corr.results.both <- cor(predators, ungulates, method = "spearman")
cor.p <- cor.mtest(all.val)$p
cor.p.culled <- cor.p[,colnames(cor.p) %in% colnames(ungulates)]
cor.p.culled <- cor.p.culled[rownames(cor.p.culled) %in% colnames(predators),]
corrplot::corrplot(corr.results.both, mar = c(1,1,1,1), p.mat = cor.p.culled, #insig = "blank",
cl.align.text = 'l', addCoef.col = 'black')
mtext("Large Herbivore", side = 3, line = -3, cex = 1.5)
mtext("Predator", side = 2, adj = 0.6, line = 0, cex = 1.5)

Handley Analysis
if(interval.type %in% "bins") load("/Users/emdoughty/Dropbox/Code/R/Results/BM_handleyResult_ungulates_this.rank=species_timebin=2Mabins_start=66_end=0_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Thu Mar 10 19:47:14 2022 ------##.Rdata")
#"/Users/emdoughty/Dropbox/Code/R/Results/BM_handleyResult_ungulates_this.rank=species_timebin=2Mabins_start=64Ma_end=0Ma_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Sat Mar 5 00:00:09 2022 ------##.Rdata")
if(interval.type %in% "nalma") load("/Users/emdoughty/Dropbox/Code/R/Results/BM_handleyResult_ungulates_this.rank=species_timebin=nalma_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Thu Mar 3 22:25:10 2022 ------##.Rdata")
#countCube_ung <- countCube
optList_bm_median_ung <- optList_bm_median
optList_bm_allReps_ung <- optList_bm_allReps
if(interval.type %in% "bins") load("/Users/emdoughty/Dropbox/Code/R/Results/BM_handleyResult_carnivores_allCateg_this.rank=species_timebin=2Mabins_start=66_end=0_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Thu Mar 10 21:44:05 2022 ------##.Rdata")
#/Users/emdoughty/Dropbox/Code/R/Results/BM_handleyResult_carnivores_allCateg_this.rank=species_timebin=2Mabins_start=64Ma_end=0Ma_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Sat Mar 5 03:39:27 2022 ------##.Rdata")
if(interval.type %in% "nalma") load("/Users/emdoughty/Dropbox/Code/R/Results/BM_handleyResult_carnivores_allCateg_this.rank=species_timebin=nalma_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Fri Mar 4 20:01:17 2022 ------##.Rdata")
#countCube_pred <- countCube
optList_bm_median_pred <- optList_bm_median
optList_bm_allReps_pred <- optList_bm_allReps
bm_quants_ung <- apply(sapply(repIntTaxa, function(y) sapply(y, function(x) quantile(measure.mat[as.character(x),"bodyMass"], probs=c(0, 0.25, 0.5, 0.75, 1.0), na.rm=TRUE)), simplify = "array"), c(1,2), median, na.rm=TRUE)
bm_quants_pred <- apply(sapply(repIntTaxa, function(y) sapply(y, function(x) quantile(pred.data[as.character(x),"bodyMass"], probs=c(0, 0.25, 0.5, 0.75, 1.0), na.rm=TRUE)), simplify = "array"), c(1,2), median, na.rm=TRUE)
Determine which breaks were the most common
par(mfrow = c(2,1))
plotHistShiftinInterval(optList = optList_bm_allReps_ung,
intervals = intervals,
reps = 10000,
xaxp = c(70,0,14),
main = "Number of Replicates with a Body Mass Distribution Shift (Ungulate)",
xlab = "Time (Ma)",
xlim = c(65,0),
cex = 0.3,
col = "deepskyblue4",
border = "deepskyblue1",
do.subepochs = TRUE,
labels = TRUE,
freq=TRUE)
## Warning in plot.histogram(breakHist, col = NA, border = NA, labels =
## FALSE, : the AREAS in the plot are wrong -- rather use 'freq = FALSE'
## Warning in plot.histogram(breakHist, col = col, border = border, freq =
## freq, : the AREAS in the plot are wrong -- rather use 'freq = FALSE'
plotHistShiftinInterval(optList = optList_bm_allReps_pred,
intervals = intervals,
reps = 10000,
xaxp = c(70,0,14),
main = "Number of Replicates with a Body Mass Distribution Shift (Predator)",
xlab = "Time (Ma)",
xlim = c(65,0),
cex = 0.3,
col = "firebrick4",
border = "firebrick1",
do.subepochs = TRUE,
labels = TRUE,
freq=TRUE)
## Warning in plot.histogram(breakHist, col = NA, border = NA, labels =
## FALSE, : the AREAS in the plot are wrong -- rather use 'freq = FALSE'
## Warning in plot.histogram(breakHist, col = NA, border = NA, labels =
## FALSE, : the AREAS in the plot are wrong -- rather use 'freq = FALSE'

#quartz(width=6.89)
#par(mfrow=c(2,1), mar=c(4,4,0.5,0.5)) #, mgp=c(2, 1,0))
shoulderPlot(measure.mat = measure.mat, plot.y = "bodyMass", intervals = intervals, occs = occs, this.rank = "species",
bigList = bigList, shortFam = shortFam, repIntTaxa = repIntTaxa_ung, quants = bm_quants_ung,
optList_bm_median = optList_bm_median_ung,
specOcc.col = "gray0", specOcc.alpha = 0.5,
plot.breaks = TRUE, break.text = FALSE, break.col = "blue4", #manual.breaks = c(62, 50, 46, 40, 34, 22, 4),
ylab = "log bodymass (kg)", xlab = "Time (Ma)", xaxp = c(70,0,14), cex.axis = 1, cex.lab = 1,
do.subepochs = TRUE, do.quants = TRUE,
col.axis = "black", col.lab = "black", poly.col = "deepskyblue4", median.col = c("darkturquoise", "deepskyblue4", "deepskyblue1"))

#plotHistShiftinInterval(optList = optList_bm_allReps_ung,
# intervals = intervals,
# reps = 10000,
# xaxp = c(70,0,14),
# main = NULL,
# xlab = "Time (Ma)",
# xlim = c(65,0),
# cex = 0.5,
# col = "deepskyblue4",
# border = "deepskyblue1",
# do.subepochs = TRUE,
# labels = TRUE,
# freq=TRUE)
#quartz(width=6.89)
#par(mfrow=c(2,1), mar=c(4,4,0.5,0.5)) #, mgp=c(2, 1,0))
shoulderPlot(measure.mat = pred.data, plot.y = "bodyMass", intervals = intervals, occs = occs, this.rank = "species",
bigList = bigListPred, shortFam = shortFamPred, repIntTaxa = repIntTaxa_pred, quants = bm_quants_pred,
optList_bm_median = optList_bm_median_pred, #ylim = c(-0.5, 4),
specOcc.col = "gray0", specOcc.alpha = 0.5,
plot.breaks = TRUE, break.text = FALSE, break.col = "firebrick4", #manual.breaks = c(57, 41, 25),
ylab = "log Bodymass (kg)", xlab = "Time (Ma)", xaxp = c(75,0,15), cex.axis = 1, cex.lab = 1,
do.subepochs = TRUE, do.quants = TRUE,
col.axis = "black", col.lab = "black", poly.col = "darkorange4", median.col = c("goldenrod1", "darkorange4", "darkorange1"))

#plotHistShiftinInterval(optList = optList_bm_allReps_pred,
# intervals = intervals,
# reps = 10000,
# xaxp = c(70,0,14),
# main = "Number of Replicates with a Body Mass Distribution Shift (Predator)",
# xlab = "Time (Ma)",
# xlim = c(65,0),
# cex = 0.3,
# col = "firebrick4",
# border = "firebrick1",
# do.subepochs = TRUE,
# labels = TRUE,
# freq=TRUE)
Taxonomic Turnover
removed from current runs
#to properly siz eth eplot drag the plot window in rstudio to the point where source is on source and save when making new file to run this outside markdown
######1)copy this code to new untitled doc
######2)drag the plot window over to where soruce part of "source on save"
######3) run this code
######4) export as png
#quartz(width=6.89)
#par(mfrow=c(2,1), mar=c(4,4,0.5,0.5)) #, mgp=c(2, 1,0))
#par(bg=NA)
#taxCube <- sapply(repIntTaxa_ung, function(y) sapply(y, function(x) tabulate(match(bigList$family[as.character(bigList$accepted_name) %in% x], shortFam), nbins=length(shortFam)), simplify="array"), simplify="array")
#dimnames(taxCube) <- list(shortFam, rownames(intervals), NULL)
#prop_herb <- t(apply(taxCube, c(1,2), mean, na.rm=TRUE))
# colnames(prop)[colnames(prop)==""] <- "indeterminate"
#dimnames(prop)[[2]] <- shortFam
#lotStackedRichness(this.box=prop_herb, intervals=intervals, reorder.taxa = TRUE, do.log=FALSE, overlay.labels=FALSE, numbers.only=FALSE, legend=FALSE, xlim = c(65, min(intervals, na.rm=TRUE)))
#quartz(width=6.89)
#par(mfrow=c(2,1), mar=c(4,4,0.5,0.5)) #, mgp=c(2, 1,0))
#par(bg=NA)
#taxCube <- sapply(repIntTaxa_pred, function(y) sapply(y, function(x) tabulate(match(bigListPred$family[as.character(bigListPred$accepted_name) %in% x], shortFamPred), nbins=length(shortFamPred)), simplify="array"), simplify="array")
#dimnames(taxCube) <- list(shortFamPred, rownames(intervals), NULL)
#prop_pred <- t(apply(taxCube, c(1,2), mean, na.rm=TRUE))
# colnames(prop)[colnames(prop)==""] <- "indeterminate"
#dimnames(prop)[[2]] <- shortFamPred
#plotStackedRichness(this.box=prop_pred, intervals=intervals, reorder.taxa = TRUE, do.log=FALSE, overlay.labels=FALSE, numbers.only=FALSE, legend=FALSE, xlim = c(65, min(intervals, na.rm=TRUE)))
Bring in Predator Diet
Hypercarnivores
#diet.type <- c("hypercarnivore") #, "mesocarnivore", "hypocarnivore")
pred.diet <- read.csv("/Users/emdoughty/Dropbox/Proposal/Diet Data PPP CJ.csv")
pred.diet$MASTER_LIST <- gsub(pattern = "[[:space:]]", replacement = "_", x = pred.diet$MASTER_LIST)
pred.data.master <- pred.data
pred.data <- pred.data[pred.data$taxon %in% pred.diet$MASTER_LIST,]
pred.data$Diet <- pred.diet[pred.diet$MASTER_LIST %in% pred.data$taxon, "PPP_diet_2"]
pred.data.hyper <- pred.data[pred.data$Diet %in% "hypercarnivore",]
pred.data.meso <- pred.data[pred.data$Diet %in% "mesocarnivore",]
pred.data.hypo <- pred.data[pred.data$Diet %in% "hypocarnivore",]
#write.csv(pred.data, "/Users/emdoughty/Dropbox/Proposal/DietCheck.csv")
check coverage of current diet dataset
Predators with diet designations are in red.
#par(mfrow=c(3,1))
pred.data.diet <- pred.data.hyper
plot(pred.data$max_ma, pred.data[,"bodyMass"], type="n", xlim = c(65,0))
overlayCzTimescale(do.subepochs= TRUE)
for (i in seq_len(nrow(pred.data))) {
if (is.finite(pred.data$max_ma[i]) & is.finite(pred.data$min_ma[i]) & pred.data$max_ma[i] != pred.data$min_ma[i]) lines(x=pred.data[i,c("max_ma","min_ma")], y=c(pred.data[,"bodyMass"][i], pred.data[,"bodyMass"][i]), lwd=0.75, pch=21) #alphaColor(orderColors[i], 0.5)
}
points(pred.data[complete.cases(pred.data[ ,c("max_ma","min_ma")]) & pred.data$max_ma== pred.data$min_ma, c("min_ma", "bodyMass")], pch=21, cex=0.25) #this line is not generating the proper output for the final graph due to c("FO","bodyMass") causing a "undefined columns selected" error
for (i in seq_len(nrow(pred.data.diet))) {
if (is.finite(pred.data.diet$max_ma[i]) & is.finite(pred.data.diet$min_ma[i]) & pred.data.diet$max_ma[i] != pred.data.diet$min_ma[i]) lines(x=pred.data.diet[i,c("max_ma","min_ma")], y=c(pred.data.diet[,"bodyMass"][i], pred.data.diet[,"bodyMass"][i]), lwd=0.75, pch=21, col = "red") #alphaColor(orderColors[i], 0.5)
}
points(pred.data.diet[complete.cases(pred.data.diet[ ,c("max_ma","min_ma")]) & pred.data.diet$max_ma== pred.data.diet$min_ma, c("min_ma", "bodyMass")], pch=21, cex=0.25, col = "red") #this line is not generating
abline(h=log10(7), col = "black", lwd=2.5)

#par(mfrow=c(3,1))
pred.data.diet <- pred.data.meso
plot(pred.data$max_ma, pred.data[,"bodyMass"], type="n", xlim = c(65,0))
overlayCzTimescale(do.subepochs= TRUE)
for (i in seq_len(nrow(pred.data))) {
if (is.finite(pred.data$max_ma[i]) & is.finite(pred.data$min_ma[i]) & pred.data$max_ma[i] != pred.data$min_ma[i]) lines(x=pred.data[i,c("max_ma","min_ma")], y=c(pred.data[,"bodyMass"][i], pred.data[,"bodyMass"][i]), lwd=0.75, pch=21) #alphaColor(orderColors[i], 0.5)
}
points(pred.data[complete.cases(pred.data[ ,c("max_ma","min_ma")]) & pred.data$max_ma== pred.data$min_ma, c("min_ma", "bodyMass")], pch=21, cex=0.25) #this line is not generating the proper output for the final graph due to c("FO","bodyMass") causing a "undefined columns selected" error
for (i in seq_len(nrow(pred.data.diet))) {
if (is.finite(pred.data.diet$max_ma[i]) & is.finite(pred.data.diet$min_ma[i]) & pred.data.diet$max_ma[i] != pred.data.diet$min_ma[i]) lines(x=pred.data.diet[i,c("max_ma","min_ma")], y=c(pred.data.diet[,"bodyMass"][i], pred.data.diet[,"bodyMass"][i]), lwd=0.75, pch=21, col = "blue") #alphaColor(orderColors[i], 0.5)
}
points(pred.data.diet[complete.cases(pred.data.diet[ ,c("max_ma","min_ma")]) & pred.data.diet$max_ma== pred.data.diet$min_ma, c("min_ma", "bodyMass")], pch=21, cex=0.25, col = "blue") #this line is not generating
abline(h=log10(7), col = "black", lwd=2.5)

#par(mfrow=c(3,1))
pred.data.diet <- pred.data.hypo
plot(pred.data$max_ma, pred.data[,"bodyMass"], type="n", xlim = c(65,0))
overlayCzTimescale(do.subepochs= TRUE)
for (i in seq_len(nrow(pred.data))) {
if (is.finite(pred.data$max_ma[i]) & is.finite(pred.data$min_ma[i]) & pred.data$max_ma[i] != pred.data$min_ma[i]) lines(x=pred.data[i,c("max_ma","min_ma")], y=c(pred.data[,"bodyMass"][i], pred.data[,"bodyMass"][i]), lwd=0.75, pch=21) #alphaColor(orderColors[i], 0.5)
}
points(pred.data[complete.cases(pred.data[ ,c("max_ma","min_ma")]) & pred.data$max_ma== pred.data$min_ma, c("min_ma", "bodyMass")], pch=21, cex=0.25) #this line is not generating the proper output for the final graph due to c("FO","bodyMass") causing a "undefined columns selected" error
for (i in seq_len(nrow(pred.data.diet))) {
if (is.finite(pred.data.diet$max_ma[i]) & is.finite(pred.data.diet$min_ma[i]) & pred.data.diet$max_ma[i] != pred.data.diet$min_ma[i]) lines(x=pred.data.diet[i,c("max_ma","min_ma")], y=c(pred.data.diet[,"bodyMass"][i], pred.data.diet[,"bodyMass"][i]), lwd=0.75, pch=21, col = "green") #alphaColor(orderColors[i], 0.5)
}
points(pred.data.diet[complete.cases(pred.data.diet[ ,c("max_ma","min_ma")]) & pred.data.diet$max_ma== pred.data.diet$min_ma, c("min_ma", "bodyMass")], pch=21, cex=0.25, col = "green") #this line is not generating
abline(h=log10(7), col = "black", lwd=2.5)

#constrain intervals to be Oligocene the present
intervals <- intervals[intervals$ageBase <= 34,]
repIntTaxa_master <- repIntTaxa
repIntTaxa <- lapply(repIntTaxa, function(this.rep) {this.rep[rownames(intervals)]})
Functional Diversity Through Time
Hypercarnivores
pred.data <- pred.data.hyper
rem.col <- c("family","genus","reg.vec", "diet")
pred.data <- pred.data[,!colnames(pred.data) %in% rem.col]
countCube_pred <- sapply(repIntTaxa, function(this.rep) {
sapply(this.rep, function(this.intv, this.rep) {
hist(pred.data[,"bodyMass"][match(this.intv, pred.data$taxon)],
breaks= bmBreaks_pred, plot=FALSE)$counts
}, this.rep=this.rep)
}, simplify = "array")
#countCube <- countCube[,,1]
sizecateg <- c("<1kg",
"1kg to 7kg",
"7kg to 21kg",
"21kg to 100kg",
">100kg")
dimnames(countCube_pred) <- list(sizecateg, rownames(intervals), NULL)
#quartz(width=6.89)
#par(mfrow=c(2,1), mar=c(4,4,1.6,4), mgp=c(2, 1,0)) #, height = 2.15, width = 8.21)
prop_pred_hyper<- t(apply(countCube_pred, c(1,2), mean, na.rm=TRUE))
colnames(prop_pred_hyper)[colnames(prop_pred_hyper)==""] <- "indeterminate"
# dimnames(prop) <- list(rownames(intervals), shortFam)
plotStackedRichness(this.box=prop_pred_hyper, intervals=intervals, reorder.taxa = FALSE, do.log=FALSE, overlay.labels=FALSE, numbers.only=FALSE, legend=FALSE, xlim = c(65, min(intervals, na.rm=TRUE)), ylim = c(0, 35))

Mesocarnivores
pred.data <- pred.data.meso
rem.col <- c("family","genus","reg.vec", "diet")
pred.data <- pred.data[,!colnames(pred.data) %in% rem.col]
countCube_pred <- sapply(repIntTaxa, function(this.rep) {
sapply(this.rep, function(this.intv, this.rep) {
hist(pred.data[,"bodyMass"][match(this.intv, pred.data$taxon)],
breaks= bmBreaks_pred, plot=FALSE)$counts
}, this.rep=this.rep)
}, simplify = "array")
#countCube <- countCube[,,1]
sizecateg <- c("<1kg",
"1kg to 7kg",
"7kg to 21kg",
"21kg to 100kg",
">100kg")
dimnames(countCube_pred) <- list(sizecateg, rownames(intervals), NULL)
#quartz(width=6.89)
#par(mfrow=c(2,1), mar=c(4,4,1.6,4), mgp=c(2, 1,0)) #, height = 2.15, width = 8.21)
prop_pred_meso<- t(apply(countCube_pred, c(1,2), mean, na.rm=TRUE))
colnames(prop_pred_meso)[colnames(prop_pred_meso)==""] <- "indeterminate"
# dimnames(prop) <- list(rownames(intervals), shortFam)
plotStackedRichness(this.box=prop_pred_meso, intervals=intervals, reorder.taxa = FALSE, do.log=FALSE, overlay.labels=FALSE, numbers.only=FALSE, legend=FALSE, xlim = c(65, min(intervals, na.rm=TRUE)), ylim = c(0,35))

Hypocarnivores
pred.data <- pred.data.hypo
rem.col <- c("family","genus","reg.vec", "diet")
pred.data <- pred.data[,!colnames(pred.data) %in% rem.col]
countCube_pred <- sapply(repIntTaxa, function(this.rep) {
sapply(this.rep, function(this.intv, this.rep) {
hist(pred.data[,"bodyMass"][match(this.intv, pred.data$taxon)],
breaks= bmBreaks_pred, plot=FALSE)$counts
}, this.rep=this.rep)
}, simplify = "array")
#countCube <- countCube[,,1]
sizecateg <- c("<1kg",
"1kg to 7kg",
"7kg to 21kg",
"21kg to 100kg",
">100kg")
dimnames(countCube_pred) <- list(sizecateg, rownames(intervals), NULL)
#quartz(width=6.89)
#par(mfrow=c(2,1), mar=c(4,4,1.6,4), mgp=c(2, 1,0)) #, height = 2.15, width = 8.21)
prop_pred_hypo<- t(apply(countCube_pred, c(1,2), mean, na.rm=TRUE))
colnames(prop_pred_hypo)[colnames(prop_pred_hypo)==""] <- "indeterminate"
# dimnames(prop) <- list(rownames(intervals), shortFam)
plotStackedRichness(this.box=prop_pred_hypo, intervals=intervals, reorder.taxa = FALSE, do.log=FALSE, overlay.labels=FALSE, numbers.only=FALSE, legend=FALSE, xlim = c(65, min(intervals, na.rm=TRUE)), ylim = c(0,35))

Correlation Matrices
Hypercarnivores
“mean” correlations
prop_herb_master <- prop_herb
prop_herb <- prop_herb[rownames(prop_herb) %in% rownames(intervals),]
ungulates <- prop_herb
predators <- prop_pred_hyper
all.val <- cbind(predators, ungulates)
corr.results.both <- cor(predators, ungulates, method = "spearman")
cor.p <- cor.mtest(all.val)$p
cor.p.culled <- cor.p[,colnames(cor.p) %in% colnames(ungulates)]
cor.p.culled <- cor.p.culled[rownames(cor.p.culled) %in% colnames(predators),]
corrplot::corrplot(corr.results.both, mar = c(1,1,1,1), p.mat = cor.p.culled, #insig = "blank",
cl.align.text = 'l', addCoef.col = 'black')
mtext("Large Herbivore", side = 3, line = -3, cex = 1.5)
mtext("Predator", side = 2, adj = 0.6, line = 0, cex = 1.5)

First Differences Correlation
pred.prey.DivFirstDiff <- getDiversity1stDiff(data.mat = t(prop_pred_hyper), intervals = intervals)
UngualteBMGroupDiv_FirstDiff <- getDiversity1stDiff(data.mat = t(prop_herb), intervals = intervals)
#UngualteBMGroupDiv_FirstDiff
#pred.prey.DivFirstDiff
#should make list of plots of each catagpry through time to make sure data is stationary
ungulates <- t(as.matrix(UngualteBMGroupDiv_FirstDiff))
predators <- t(as.matrix(pred.prey.DivFirstDiff))
all.val <- cbind(predators, ungulates)
corr.results.both <- cor(predators, ungulates, method = "spearman")
cor.p <- cor.mtest(all.val)$p
cor.p.culled <- cor.p[,colnames(cor.p) %in% colnames(ungulates)]
cor.p.culled <- cor.p.culled[rownames(cor.p.culled) %in% colnames(predators),]
corrplot::corrplot(corr.results.both, mar = c(1,1,1,1), p.mat = cor.p.culled, #insig = "blank",
cl.align.text = 'l', addCoef.col = 'black')
mtext("Large Herbivore", side = 3, line = -3, cex = 1.5)
mtext("Predator", side = 2, adj = 0.6, line = 0, cex = 1.5)

Mesocarnivores
“mean” correlations
ungulates <- prop_herb
predators <- prop_pred_meso
all.val <- cbind(predators, ungulates)
corr.results.both <- cor(predators, ungulates, method = "spearman")
cor.p <- cor.mtest(all.val)$p
cor.p.culled <- cor.p[,colnames(cor.p) %in% colnames(ungulates)]
cor.p.culled <- cor.p.culled[rownames(cor.p.culled) %in% colnames(predators),]
corrplot::corrplot(corr.results.both, mar = c(1,1,1,1), p.mat = cor.p.culled, #insig = "blank",
cl.align.text = 'l', addCoef.col = 'black')
mtext("Large Herbivore", side = 3, line = -3, cex = 1.5)
mtext("Predator", side = 2, adj = 0.6, line = 0, cex = 1.5)

First Differences Correlation
pred.prey.DivFirstDiff <- getDiversity1stDiff(data.mat = t(prop_pred_meso), intervals = intervals)
UngualteBMGroupDiv_FirstDiff <- getDiversity1stDiff(data.mat = t(prop_herb), intervals = intervals)
#UngualteBMGroupDiv_FirstDiff
#pred.prey.DivFirstDiff
#should make list of plots of each catagpry through time to make sure data is stationary
ungulates <- t(as.matrix(UngualteBMGroupDiv_FirstDiff))
predators <- t(as.matrix(pred.prey.DivFirstDiff))
all.val <- cbind(predators, ungulates)
corr.results.both <- cor(predators, ungulates, method = "spearman")
cor.p <- cor.mtest(all.val)$p
cor.p.culled <- cor.p[,colnames(cor.p) %in% colnames(ungulates)]
cor.p.culled <- cor.p.culled[rownames(cor.p.culled) %in% colnames(predators),]
corrplot::corrplot(corr.results.both, mar = c(1,1,1,1), p.mat = cor.p.culled, #insig = "blank",
cl.align.text = 'l', addCoef.col = 'black')
mtext("Large Herbivore", side = 3, line = -3, cex = 1.5)
mtext("Predator", side = 2, adj = 0.6, line = 0, cex = 1.5)

Hypocarnivores
“mean” correlations
ungulates <- prop_herb
predators <- prop_pred_hypo
all.val <- cbind(predators, ungulates)
corr.results.both <- cor(predators, ungulates, method = "spearman")
## Warning in cor(predators, ungulates, method = "spearman"): the standard
## deviation is zero
cor.p <- cor.mtest(all.val)$p
## Warning in cor(x, y): the standard deviation is zero
## Warning in cor(x, y): the standard deviation is zero
## Warning in cor(x, y): the standard deviation is zero
## Warning in cor(x, y): the standard deviation is zero
## Warning in cor(x, y): the standard deviation is zero
## Warning in cor(x, y): the standard deviation is zero
## Warning in cor(x, y): the standard deviation is zero
## Warning in cor(x, y): the standard deviation is zero
## Warning in cor(x, y): the standard deviation is zero
cor.p.culled <- cor.p[,colnames(cor.p) %in% colnames(ungulates)]
cor.p.culled <- cor.p.culled[rownames(cor.p.culled) %in% colnames(predators),]
corrplot::corrplot(corr.results.both, mar = c(1,1,1,1), p.mat = cor.p.culled, #insig = "blank",
cl.align.text = 'l', addCoef.col = 'black')
mtext("Large Herbivore", side = 3, line = -3, cex = 1.5)
mtext("Predator", side = 2, adj = 0.6, line = 0, cex = 1.5)

First Differences Correlation
pred.prey.DivFirstDiff <- getDiversity1stDiff(data.mat = t(prop_pred_hypo), intervals = intervals)
UngualteBMGroupDiv_FirstDiff <- getDiversity1stDiff(data.mat = t(prop_herb), intervals = intervals)
#UngualteBMGroupDiv_FirstDiff
#pred.prey.DivFirstDiff
#should make list of plots of each catagpry through time to make sure data is stationary
ungulates <- t(as.matrix(UngualteBMGroupDiv_FirstDiff))
predators <- t(as.matrix(pred.prey.DivFirstDiff))
all.val <- cbind(predators, ungulates)
corr.results.both <- cor(predators, ungulates, method = "spearman")
## Warning in cor(predators, ungulates, method = "spearman"): the standard
## deviation is zero
cor.p <- cor.mtest(all.val)$p
## Warning in cor(x, y): the standard deviation is zero
## Warning in cor(x, y): the standard deviation is zero
## Warning in cor(x, y): the standard deviation is zero
## Warning in cor(x, y): the standard deviation is zero
## Warning in cor(x, y): the standard deviation is zero
## Warning in cor(x, y): the standard deviation is zero
## Warning in cor(x, y): the standard deviation is zero
## Warning in cor(x, y): the standard deviation is zero
## Warning in cor(x, y): the standard deviation is zero
cor.p.culled <- cor.p[,colnames(cor.p) %in% colnames(ungulates)]
cor.p.culled <- cor.p.culled[rownames(cor.p.culled) %in% colnames(predators),]
corrplot::corrplot(corr.results.both, mar = c(1,1,1,1), p.mat = cor.p.culled, #insig = "blank",
cl.align.text = 'l', addCoef.col = 'black')
mtext("Large Herbivore", side = 3, line = -3, cex = 1.5)
mtext("Predator", side = 2, adj = 0.6, line = 0, cex = 1.5)

Handley Analyssi for Diet Categories
Hypercarnivore
if(interval.type %in% "bins") load("/Users/emdoughty/Dropbox/Code/R/Results/BM_handleyResult_carnivores_allCateg_hypercarnivores_this.rank=species_timebin=2Mabins_start=34_end=0_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Fri Mar 11 12:00:42 2022 ------##.Rdata")
#/Users/emdoughty/Dropbox/Code/R/Results/BM_handleyResult_carnivores_allCateg_this.rank=species_timebin=2Mabins_start=64Ma_end=0Ma_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Sat Mar 5 03:39:27 2022 ------##.Rdata")
if(interval.type %in% "nalma") load("/Users/emdoughty/Dropbox/Code/R/Results/BM_handleyResult_carnivores_allCateg_hypercarnivore__this.rank=species_timebin=nalma_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Fri Mar 11 18:33:06 2022 ------##.Rdata")
#countCube_pred <- countCube
optList_bm_median_pred_hyper <- optList_bm_median
optList_bm_allReps_pred_hyper <- optList_bm_allReps
bm_quants_pred_hyper <- apply(sapply(repIntTaxa, function(y) sapply(y, function(x) quantile(pred.data.hyper[as.character(x),"bodyMass"], probs=c(0, 0.25, 0.5, 0.75, 1.0), na.rm=TRUE)), simplify = "array"), c(1,2), median, na.rm=TRUE)
if(interval.type %in% "bins") load("/Users/emdoughty/Dropbox/Code/R/Results/BM_handleyResult_carnivores_allCateg_mesocarnivore__this.rank=species_timebin=2Mabins_start=34_end=0_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Fri Mar 11 14:17:49 2022 ------##.Rdata")
#/Users/emdoughty/Dropbox/Code/R/Results/BM_handleyResult_carnivores_allCateg_this.rank=species_timebin=2Mabins_start=64Ma_end=0Ma_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Sat Mar 5 03:39:27 2022 ------##.Rdata")
if(interval.type %in% "nalma") load("/Users/emdoughty/Dropbox/Code/R/Results/BM_handleyResult_carnivores_allCateg_mesocarnivore__this.rank=species_timebin=nalma_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Fri Mar 11 19:32:24 2022 ------##.Rdata")
#countCube_pred <- countCube
optList_bm_median_pred_meso <- optList_bm_median
optList_bm_allReps_pred_meso <- optList_bm_allReps
bm_quants_pred_meso <- apply(sapply(repIntTaxa, function(y) sapply(y, function(x) quantile(pred.data.meso[as.character(x),"bodyMass"], probs=c(0, 0.25, 0.5, 0.75, 1.0), na.rm=TRUE)), simplify = "array"), c(1,2), median, na.rm=TRUE)
if(interval.type %in% "bins") load("/Users/emdoughty/Dropbox/Code/R/Results/BM_handleyResult_carnivores_allCateg_hypocarnivore__this.rank=species_timebin=2Mabins_start=34_end=0_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Fri Mar 11 17:18:18 2022 ------##.Rdata")
#/Users/emdoughty/Dropbox/Code/R/Results/BM_handleyResult_carnivores_allCateg_this.rank=species_timebin=2Mabins_start=64Ma_end=0Ma_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Sat Mar 5 03:39:27 2022 ------##.Rdata")
if(interval.type %in% "nalma") load("/Users/emdoughty/Dropbox/Code/R/Results/BM_handleyResult_carnivores_allCateg_hypocarnivore__this.rank=species_timebin=nalma_SampleStandardized=TRUE_Reps=10000Jonathans_MBP.lan##------ Fri Mar 11 20:11:56 2022 ------##.Rdata")
#countCube_pred <- countCube
optList_bm_median_pred_hypo <- optList_bm_median
optList_bm_allReps_pred_hypo <- optList_bm_allReps
bm_quants_pred_hypo <- apply(sapply(repIntTaxa, function(y) sapply(y, function(x) quantile(pred.data.hypo[as.character(x),"bodyMass"], probs=c(0, 0.25, 0.5, 0.75, 1.0), na.rm=TRUE)), simplify = "array"), c(1,2), median, na.rm=TRUE)
repIntTaxa <- repIntTaxa_master
repIntTaxa <- lapply(repIntTaxa, function(this.rep) {this.rep[rownames(intervals)]})
#quartz(width=6.89)
#par(mfrow=c(2,1), mar=c(4,4,0.5,0.5)) #, mgp=c(2, 1,0))
shoulderPlot(measure.mat = pred.data.hyper, plot.y = "bodyMass", intervals = intervals, occs = occs, this.rank = "species",
bigList = bigListPred, shortFam = shortFamPred, repIntTaxa = repIntTaxa, quants = bm_quants_pred_hyper,
optList_bm_median = optList_bm_median_pred_hyper, xlim = c(65, 0), ylim = c(-1, 2.75),
specOcc.col = "gray0", specOcc.alpha = 0.5,
plot.breaks = TRUE, break.text = FALSE, break.col = "firebrick4", #manual.breaks = c(57, 41, 25),
ylab = "log Bodymass (kg)", xlab = "Time (Ma)", xaxp = c(75,0,15), cex.axis = 1, cex.lab = 1,
do.subepochs = TRUE, do.quants = TRUE,
col.axis = "black", col.lab = "black", poly.col = "darkorange4", median.col = c("goldenrod1", "darkorange4", "darkorange1"))

#quartz(width=6.89)
#par(mfrow=c(2,1), mar=c(4,4,0.5,0.5)) #, mgp=c(2, 1,0))
shoulderPlot(measure.mat = pred.data.meso, plot.y = "bodyMass", intervals = intervals, occs = occs, this.rank = "species",
bigList = bigListPred, shortFam = shortFamPred, repIntTaxa = repIntTaxa, quants = bm_quants_pred_meso,
optList_bm_median = optList_bm_median_pred_meso, xlim = c(65, 0), ylim = c(-1, 2.75),
specOcc.col = "gray0", specOcc.alpha = 0.5,
plot.breaks = TRUE, break.text = FALSE, break.col = "firebrick4", #manual.breaks = c(57, 41, 25),
ylab = "log Bodymass (kg)", xlab = "Time (Ma)", xaxp = c(75,0,15), cex.axis = 1, cex.lab = 1,
do.subepochs = TRUE, do.quants = TRUE,
col.axis = "black", col.lab = "black", poly.col = "darkorange4", median.col = c("goldenrod1", "darkorange4", "darkorange1"))

#quartz(width=6.89)
#par(mfrow=c(2,1), mar=c(4,4,0.5,0.5)) #, mgp=c(2, 1,0))
shoulderPlot(measure.mat = pred.data.hypo, plot.y = "bodyMass", intervals = intervals, occs = occs, this.rank = "species",
bigList = bigListPred, shortFam = shortFamPred, repIntTaxa = repIntTaxa, quants = bm_quants_pred_hypo,
optList_bm_median = optList_bm_median_pred_hypo, xlim = c(65, 0), ylim = c(-1, 2.75),
specOcc.col = "gray0", specOcc.alpha = 0.5,
plot.breaks = TRUE, break.text = FALSE, break.col = "firebrick4", #manual.breaks = c(57, 41, 25),
ylab = "log Bodymass (kg)", xlab = "Time (Ma)", xaxp = c(75,0,15), cex.axis = 1, cex.lab = 1,
do.subepochs = TRUE, do.quants = TRUE,
col.axis = "black", col.lab = "black", poly.col = "darkorange4", median.col = c("goldenrod1", "darkorange4", "darkorange1"))

test code to make bins for both body mass and diet
bmBreaks_pred
## [1] -Inf 0.000000 0.845098 1.322219 2.000000 Inf
pred.diet <- c("hypercarnivore", "mesocarnivore", "hypocarnivore")